resources/META-INF/plugin.xml (119 lines of code) (raw):
<idea-plugin url="https://github.com/JetBrains/Grammar-Kit">
<id>org.jetbrains.idea.grammar</id>
<vendor>JetBrains</vendor>
<name>Grammar-Kit</name>
<description>BNF Grammars and JFlex lexers editor. Readable parser/PSI code generator.</description>
<resource-bundle>messages.GrammarKitBundle</resource-bundle>
<depends>com.intellij.modules.lang</depends>
<depends optional="true" config-file="plugin-copyright.xml">com.intellij.copyright</depends>
<depends optional="true" config-file="plugin-java.xml">com.intellij.java</depends>
<depends optional="true" config-file="plugin-uml.xml">com.intellij.diagram</depends>
<extensions defaultExtensionNs="com.intellij">
<fileType name="BNF" implementationClass="org.intellij.grammar.BnfFileType" fieldName="INSTANCE" extensions="bnf" language="BNF"/>
<fileType name="BNF_LP" implementationClass="org.intellij.grammar.livePreview.LivePreviewFileType" fieldName="INSTANCE" language="BNF_LP"/>
<lang.parserDefinition language="BNF" implementationClass="org.intellij.grammar.BnfParserDefinition"/>
<lang.ast.factory language="BNF" implementationClass="org.intellij.grammar.BnfASTFactory"/>
<annotator language="BNF" implementationClass="org.intellij.grammar.editor.BnfAnnotator"/>
<annotator language="BNF" implementationClass="org.intellij.grammar.editor.BnfPinMarkerAnnotator"/>
<annotator language="BNF" implementationClass="org.intellij.grammar.editor.BnfExpressionMarkerAnnotator"/>
<lang.syntaxHighlighterFactory language="BNF" implementationClass="org.intellij.grammar.editor.BnfSyntaxHighlighterFactory"/>
<lang.syntaxHighlighterFactory language="BNF_LP" implementationClass="org.intellij.grammar.livePreview.LivePreviewSyntaxHighlighterFactory"/>
<highlightingPassFactory implementation="org.intellij.grammar.livePreview.GrammarAtCaretPassFactory"/>
<elementDescriptionProvider implementation="org.intellij.grammar.BnfDescriptionProvider"/>
<lang.findUsagesProvider language="BNF" implementationClass="org.intellij.grammar.BnfFindUsagesProvider"/>
<lang.braceMatcher language="BNF" implementationClass="org.intellij.grammar.BnfBraceMatcher"/>
<lang.psiStructureViewFactory language="BNF" implementationClass="org.intellij.grammar.BnfStructureViewFactory"/>
<codeInsight.lineMarkerProvider language="BNF" implementationClass="org.intellij.grammar.editor.BnfRuleLineMarkerProvider"/>
<codeInsight.lineMarkerProvider language="BNF" implementationClass="org.intellij.grammar.editor.BnfRecursionLineMarkerProvider"/>
<lang.commenter language="BNF" implementationClass="org.intellij.grammar.BnfCommenter"/>
<completion.contributor language="BNF" implementationClass="org.intellij.grammar.BnfCompletionContributor" order="before javaClassName"/>
<languageInjector implementation="org.intellij.grammar.psi.impl.BnfStringRegexpInjector"/>
<lang.elementManipulator forClass="org.intellij.grammar.psi.impl.BnfStringLiteralExpressionImpl"
implementationClass="org.intellij.grammar.psi.impl.BnfStringManipulator"/>
<extendWordSelectionHandler implementation="org.intellij.grammar.editor.BnfWordSelectioner"/>
<moveLeftRightHandler language="BNF" implementationClass="org.intellij.grammar.editor.BnfMoveLeftRightHandler"/>
<spellchecker.support language="BNF" implementationClass="org.intellij.grammar.editor.BnfSpellCheckingStrategy"/>
<!--<psi.referenceContributor implementation="org.intellij.grammar.psi.impl.BnfStringRefContributor" />-->
<referencesSearch implementation="org.intellij.grammar.psi.BnfAttrPatternRefSearcher"/>
<lang.refactoringSupport language="BNF" implementationClass="org.intellij.grammar.refactor.BnfRefactoringSupportProvider"/>
<inlineActionHandler implementation="org.intellij.grammar.refactor.BnfInlineRuleActionHandler"/>
<lang.namesValidator language="BNF" implementationClass="org.intellij.grammar.refactor.BnfNamesValidator"/>
<lang.unwrapDescriptor language="BNF" implementationClass="org.intellij.grammar.refactor.BnfUnwrapDescriptor"/>
<lang.foldingBuilder language="BNF" implementationClass="org.intellij.grammar.BnfFoldingBuilder"/>
<documentationProvider implementation="org.intellij.grammar.BnfDocumentationProvider"/>
<lang.inspectionSuppressor language="BNF" implementationClass="org.intellij.grammar.inspection.BnfInspectionSuppressor"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfResolveInspection"
key="inspection.bnf.resolve.display.name"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfUnusedRuleInspection"
key="inspection.bnf.unused.rule.display.name"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfUnusedAttributeInspection"
key="inspection.bnf.unused.attribute.display.name"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfSuspiciousTokenInspection"
key="inspection.bnf.suspicious.token.display.name"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfLeftRecursionInspection"
key="inspection.bnf.left.recursion.display.name"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfDuplicateRuleInspection"
key="inspection.bnf.duplicate.rule.display.name"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfIdenticalChoiceBranchesInspection"
key="inspection.bnf.identical.choice.branches.display.name"/>
<localInspection language="BNF" level="WARNING" groupKey="inspection.group.bnf" enabledByDefault="true"
implementationClass="org.intellij.grammar.inspection.BnfUnreachableChoiceBranchInspection"
key="inspection.bnf.unreachable.choice.branch.display.name"/>
<colorSettingsPage implementation="org.intellij.grammar.editor.BnfColorSettingsPage"/>
<quoteHandler fileType="BNF" className="org.intellij.grammar.editor.BnfQuoteHandler"/>
<intentionAction>
<className>org.intellij.grammar.intention.BnfFlipChoiceIntention</className>
<categoryKey>intention.category.bnf</categoryKey>
<language>BNF</language>
</intentionAction>
<intentionAction>
<className>org.intellij.grammar.intention.BnfConvertOptExpressionIntention</className>
<categoryKey>intention.category.bnf</categoryKey>
<language>BNF</language>
</intentionAction>
<!--JFlex Support -->
<fileType name="JFlex" implementationClass="org.intellij.jflex.parser.JFlexFileType" fieldName="INSTANCE" extensions="flex" language="JFlex"/>
<lang.parserDefinition language="JFlex" implementationClass="org.intellij.jflex.parser.JFlexParserDefinition"/>
<lang.ast.factory language="JFlex" implementationClass="org.intellij.jflex.parser.JFlexASTFactory"/>
<completion.contributor language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexCompletionContributor" />
<lang.findUsagesProvider language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexFindUsagesProvider"/>
<elementDescriptionProvider implementation="org.intellij.jflex.editor.JFlexFindUsagesProvider"/>
<lang.commenter language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexCommenter"/>
<lang.refactoringSupport language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexRefactoringSupportProvider"/>
<annotator language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexAnnotator"/>
<lang.syntaxHighlighterFactory language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexSyntaxHighlighterFactory"/>
<colorSettingsPage implementation="org.intellij.jflex.editor.JFlexColorSettingsPage"/>
<lang.braceMatcher language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexBraceMatcher"/>
<quoteHandler fileType="JFlex" className="org.intellij.jflex.editor.JFlexQuoteHandler"/>
<lang.psiStructureViewFactory language="JFlex" implementationClass="org.intellij.jflex.editor.JFlexStructureViewFactory"/>
</extensions>
<actions>
<group id="grammar.file.group" popup="false">
<separator/>
<action id="grammar.LivePreview" class="org.intellij.grammar.actions.LivePreviewAction">
<keyboard-shortcut keymap="$default" first-keystroke="control alt P"/>
</action>
<separator/>
<add-to-group group-id="ToolsMenu" anchor="before" relative-to-action="ExternalToolsGroup"/>
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
<add-to-group group-id="ProjectViewPopupMenu" anchor="last"/>
</group>
<action id="grammar.HighlightGrammarAtCaretAction" class="org.intellij.grammar.actions.HighlightGrammarAtCaretAction">
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
<keyboard-shortcut keymap="$default" first-keystroke="control alt F7"/>
</action>
<group id="grammar.RefactoringGroup" popup="false">
<add-to-group group-id="IntroduceActionsGroup" anchor="first"/>
<action id="grammars.IntroduceRule" class="org.intellij.grammar.refactor.BnfIntroduceRuleAction"
use-shortcut-of="ExtractMethod"/>
<action id="grammars.IntroduceToken" class="org.intellij.grammar.refactor.BnfIntroduceTokenAction"
use-shortcut-of="IntroduceConstant" />
</group>
</actions>
<resource-bundle>messages.GrammarKitBundle</resource-bundle>
</idea-plugin>