blob: 00893d1053e83d39f6ca98837a75b856c5be98af [file] [log] [blame]
<!--
~ Copyright (C) 2017 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<idea-plugin>
<depends>org.intellij.intelliLang</depends>
<extensionPoints>
<extensionPoint qualifiedName="com.android.tools.idea.lang.androidSql.contextProvider"
interface="com.android.tools.idea.lang.androidSql.AndroidSqlContext$Provider"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<!-- Android IDL support -->
<fileType name="AIDL"
implementationClass="com.android.tools.idea.lang.aidl.AidlFileType"
fieldName="INSTANCE"
language="AIDL"
extensions="aidl"/>
<lang.parserDefinition language="AIDL" implementationClass="com.android.tools.idea.lang.aidl.AidlParserDefinition"/>
<lang.syntaxHighlighter language="AIDL"
implementationClass="com.android.tools.idea.lang.aidl.highlight.AidlSyntaxHighlighter"/>
<annotator language="AIDL" implementationClass="com.android.tools.idea.lang.aidl.highlight.AidlAnnotator" order="first"/>
<lang.commenter language="AIDL" implementationClass="com.intellij.lang.java.JavaCommenter"/>
<lang.findUsagesProvider language="AIDL" implementationClass="com.android.tools.idea.lang.aidl.findUsages.AidlFindUsageProvider"/>
<findUsagesHandlerFactory implementation="com.android.tools.idea.lang.aidl.findUsages.AidlFindUsageHandlerFactory"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.aidl.psi.AidlQualifiedName"
implementationClass="com.android.tools.idea.lang.aidl.psi.AidlQualifiedNameElementManipulator"/>
<lang.braceMatcher language="AIDL" implementationClass="com.android.tools.idea.lang.aidl.AidlPairedBraceMatcher"/>
<!-- Proguard support -->
<fileType name="Shrinker Config File"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8FileType"
fieldName="INSTANCE"
language="SHRINKER_CONFIG"
extensions="pro"
fileNames="proguard.cfg"
patterns="proguard-*.txt"/>
<lang.parserDefinition language="SHRINKER_CONFIG"
implementationClass="com.android.tools.idea.lang.proguardR8.parser.ProguardR8ParserDefinition"/>
<lang.syntaxHighlighterFactory language="SHRINKER_CONFIG"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8SyntaxHighlighterFactory"/>
<completion.contributor language="SHRINKER_CONFIG"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8CompletionContributor"
order="before javaClassReference"
/>
<idIndexer filetype="Shrinker Config File" implementationClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8IdIndexer"/>
<annotator language="SHRINKER_CONFIG" implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8Annotator"/>
<lang.braceMatcher language="SHRINKER_CONFIG"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8PairedBraceMatcher"/>
<lang.quoteHandler language="SHRINKER_CONFIG" implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8QuoteHandler"/>
<lang.commenter language="SHRINKER_CONFIG" implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8Commenter"/>
<lang.findUsagesProvider language="SHRINKER_CONFIG"
implementationClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8FindUsagesProvider"/>
<usageTypeProvider implementation="com.android.tools.idea.lang.proguardR8.psi.ProguardR8UsageTypeProvider"/>
<useScopeEnlarger implementation="com.android.tools.idea.lang.proguardR8.ProguardR8UseScopeEnlarger"/>
<typedHandler implementation="com.android.tools.idea.lang.proguardR8.ProguardR8TypedHandler" id="proguardR8CompletionAutoPopup"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8QualifiedName"
implementationClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8QualifiedNameManipulator"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8ClassMemberName"
implementationClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8ClassMemberNameManipulator"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8File"
implementationClass="com.android.tools.idea.lang.proguardR8.psi.ProguardR8FileManipulator"/>
<!-- This inspection uses the same highlight as "unused symbol", so the level is only visible in the gutter. -->
<localInspection groupPath="Android"
groupName="Shrinker"
language="SHRINKER_CONFIG"
enabledByDefault="true"
level="ERROR"
shortName="ShrinkerUnresolvedReference"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8ReferenceInspection"
displayName="Unresolved reference in Shrinker Config file"/>
<localInspection groupPath="Android"
groupName="Shrinker"
language="SHRINKER_CONFIG"
enabledByDefault="true"
level="WARNING"
shortName="R8IgnoredFlags"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8IgnoredFlagInspection"
displayName="Flags ignored by R8"/>
<localInspection groupPath="Android"
groupName="Shrinker"
language="SHRINKER_CONFIG"
enabledByDefault="true"
level="ERROR"
shortName="ShrinkerInvalidFlags"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8InvalidFlagInspection"
displayName="Invalid flag in shrinker config"/>
<localInspection groupPath="Android"
groupName="Shrinker"
language="SHRINKER_CONFIG"
enabledByDefault="true"
level="ERROR"
shortName="ShrinkerArrayType"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8ArrayTypeInspection"
displayName="Invalid using of array type"/>
<localInspection groupPath="Android"
groupName="Shrinker"
language="SHRINKER_CONFIG"
enabledByDefault="true"
level="ERROR"
shortName="ShrinkerInnerClassSeparator"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8InnerClassSeparatorInspection"
displayName="Invalid separator between class and inner class"/>
<localInspection groupPath="Android"
groupName="Shrinker"
language="SHRINKER_CONFIG"
enabledByDefault="true"
level="ERROR"
shortName="ExpensiveKeepRuleInspection"
implementationClass="com.android.tools.idea.lang.proguardR8.inspections.ExpensiveKeepRuleInspection"
displayName="An inspection that identifies expensive keep rules"/>
<localInspection groupPath="Android"
groupName="Shrinker"
language="SHRINKER_CONFIG"
enabledByDefault="true"
level="ERROR"
shortName="ConsumerRulesInspection"
implementationClass="com.android.tools.idea.lang.proguardR8.inspections.ConsumerRulesInspection"
displayName="An inspection that identifies bad global directives in consumer rules"/>
<lang.foldingBuilder language="SHRINKER_CONFIG" implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8CustomFoldingBuilder"/>
<lang.inspectionSuppressor
language="SHRINKER_CONFIG"
implementationClass="com.android.tools.idea.lang.proguardR8.ProguardR8InspectionSuppressor"/>
<!-- Renderscript -->
<fileType name="Android RenderScript"
implementationClass="com.android.tools.idea.lang.rs.AndroidRenderscriptFileType"
fieldName="INSTANCE"
language="Renderscript"
extensions="fs;rs;rsh" />
<lang.parserDefinition language="Renderscript"
implementationClass="com.android.tools.idea.lang.rs.RenderscriptParserDefinition"/>
<lang.syntaxHighlighter language="Renderscript"
implementationClass="com.android.tools.idea.lang.rs.RenderscriptSyntaxHighlighter"/>
<!-- SQL support -->
<fileType name="Android Room SQL"
implementationClass="com.android.tools.idea.lang.androidSql.AndroidSqlFileType"
fieldName="INSTANCE"
language="RoomSql" />
<lang.parserDefinition language="RoomSql"
implementationClass="com.android.tools.idea.lang.androidSql.parser.AndroidSqlParserDefinition"/>
<lang.syntaxHighlighterFactory language="RoomSql"
implementationClass="com.android.tools.idea.lang.androidSql.AndroidSqlSyntaxHighlighterFactory"/>
<annotator language="RoomSql" implementationClass="com.android.tools.idea.lang.androidSql.AndroidSqlAnnotator" order="first"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.androidSql.psi.impl.AndroidSqlDefinedTableNameImpl"
implementationClass="com.android.tools.idea.lang.androidSql.refactoring.AndroidSqlNameElementManipulator"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.androidSql.psi.impl.AndroidSqlSelectedTableNameImpl"
implementationClass="com.android.tools.idea.lang.androidSql.refactoring.AndroidSqlNameElementManipulator"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.androidSql.psi.impl.AndroidSqlColumnNameImpl"
implementationClass="com.android.tools.idea.lang.androidSql.refactoring.AndroidSqlNameElementManipulator"/>
<lang.elementManipulator forClass="com.android.tools.idea.lang.androidSql.psi.impl.AndroidSqlBindParameterImpl"
implementationClass="com.android.tools.idea.lang.androidSql.refactoring.AndroidSqlBindParameterManipulator"/>
<lang.findUsagesProvider language="RoomSql"
implementationClass="com.android.tools.idea.lang.androidSql.refactoring.AndroidSqlFindUsagesProvider"/>
<idIndexer filetype="Android Room SQL" implementationClass="com.android.tools.idea.lang.androidSql.refactoring.AndroidSqlIdIndexer"/>
<usageTypeProvider implementation="com.android.tools.idea.lang.androidSql.refactoring.AndroidSqlUsageTypeProvider"/>
<localInspection groupPath="Android"
groupName="Room"
language="RoomSql"
shortName="AndroidUnresolvedRoomSqlReference"
enabledByDefault="true"
level="ERROR"
implementationClass="com.android.tools.idea.lang.androidSql.AndroidSqlUnresolvedReferenceInspection"
displayName="Unresolved reference in Room SQL"/>
<lang.braceMatcher language="RoomSql" implementationClass="com.android.tools.idea.lang.androidSql.AndroidSqlPairedBraceMatcher"/>
<lang.quoteHandler language="RoomSql" implementationClass="com.android.tools.idea.lang.androidSql.AndroidSqlQuoteHandler"/>
<!-- Room support -->
<useScopeEnlarger implementation="com.android.tools.idea.lang.androidSql.room.RoomUseScopeEnlarger"/>
<moduleService serviceImplementation="com.android.tools.idea.lang.androidSql.room.RoomSchemaManager"/>
<projectService serviceImplementation="com.android.tools.idea.lang.androidSql.room.RoomDependencyChecker"/>
<referencesSearch implementation="com.android.tools.idea.lang.androidSql.room.RoomReferenceSearchExecutor"/>
<vetoRenameCondition implementation="com.android.tools.idea.lang.androidSql.AndroidSqlRenameVetoCondition"/>
<localInspection groupPath="Android"
groupName="Room"
language="RoomSql"
shortName="AndroidRoomQuestionMarkBindParameter"
enabledByDefault="true"
level="ERROR"
implementationClass="com.android.tools.idea.lang.androidSql.room.RoomBindParameterSyntaxInspection"
displayName="'?' used as parameter in a Room query."/>
<localInspection groupPath="Android"
groupName="Room"
language="RoomSql"
shortName="AndroidRoomSqlBooleanLiteral"
enabledByDefault="true"
level="WARNING"
implementationClass="com.android.tools.idea.lang.androidSql.room.RoomSqlBooleanLiteralInspection"
displayName="Boolean literal used in a Room query"/>
<!-- Multidex keep files support -->
<fileType name="MultiDexKeep" implementationClass="com.android.tools.idea.lang.multiDexKeep.MultiDexKeepFileType"
fileNames="multidex-config.txt" language="MultiDexKeep" fieldName="INSTANCE"/>
<lang.parserDefinition language="MultiDexKeep" implementationClass="com.android.tools.idea.lang.multiDexKeep.MultiDexKeepParserDefinition"/>
<!-- AGSL (Android Graphics Shading Language) support -->
<fileType name="AGSL" implementationClass="com.android.tools.idea.lang.agsl.AgslFileType"
extensions="agsl" language="AGSL" fieldName="INSTANCE"/>
<lang.parserDefinition language="AGSL" implementationClass="com.android.tools.idea.lang.agsl.AgslParserDefinition"/>
<lang.syntaxHighlighter language="AGSL"
implementationClass="com.android.tools.idea.lang.agsl.AgslSyntaxHighlighter"/>
<annotator language="AGSL" implementationClass="com.android.tools.idea.lang.agsl.AgslAnnotator" order="first"/>
<lang.braceMatcher language="AGSL" implementationClass="com.android.tools.idea.lang.agsl.AgslPairMatcher"/>
<lang.commenter language="AGSL" implementationClass="com.android.tools.idea.lang.agsl.AgslCommenter"/>
</extensions>
<extensions defaultExtensionNs="com.android.tools.idea.lang.androidSql">
<contextProvider implementation="com.android.tools.idea.lang.androidSql.room.RoomSqlContext$Provider" />
</extensions>
<extensions defaultExtensionNs="org.intellij.intelliLang">
<injectionConfig config="injections/roomSqlInjections.xml"/>
</extensions>
</idea-plugin>