META-INF/plugin.xml (206 lines of code) (raw):

<!DOCTYPE idea-plugin PUBLIC "Plugin/DTD" "http://plugins.intellij.net/plugin.dtd"> <idea-plugin> <module-components> <component> <implementation-class>org.jetbrains.plugins.clojure.config.ClojureFacetListener</implementation-class> </component> </module-components> <name>La Clojure</name> <id>org.intellij.clojure</id> <description>Provides Clojure language support: syntax and error highlighting, completion, navigation and refactorings </description> <category>Custom Languages</category> <version>VERSION</version> <vendor url="http://www.jetbrains.com">JetBrains Inc.</vendor> <idea-version since-build="143.0" until-build=""/> <depends optional="true" config-file="copyright.xml">com.intellij.copyright</depends> <extensions defaultExtensionNs="com.intellij"> <errorHandler implementation="com.intellij.diagnostic.ITNReporter"/> <fileTypeFactory implementation="org.jetbrains.plugins.clojure.file.ClojureFileTypeLoader"/> <lang.braceMatcher language="Clojure" implementationClass="org.jetbrains.plugins.clojure.highlighter.ClojureBraceMatcher"/> <syntaxHighlighter key="Clojure" implementationClass="org.jetbrains.plugins.clojure.highlighter.ClojureSyntaxHighlighter"/> <colorSettingsPage implementation="org.jetbrains.plugins.clojure.highlighter.ClojureColorsAndFontsPage"/> <lang.commenter language="Clojure" implementationClass="org.jetbrains.plugins.clojure.highlighter.ClojureCommenter"/> <lang.parserDefinition language="Clojure" implementationClass="org.jetbrains.plugins.clojure.parser.ClojureParserDefinition"/> <lang.foldingBuilder language="Clojure" implementationClass="org.jetbrains.plugins.clojure.ClojureFoldingBuilder"/> <lang.psiStructureViewFactory language="Clojure" implementationClass="org.jetbrains.plugins.clojure.structure.ClojureStructureViewBuilderFactory"/> <lang.formatter language="Clojure" implementationClass="org.jetbrains.plugins.clojure.formatter.ClojureFormattingModelBuilder"/> <!--<lang.refactoringSupport language="Clojure"--> <!--implementationClass="org.jetbrains.plugins.clojure.refactoring.ClojureRefactoringSupportProvider"/>--> <codeStyleSettingsProvider implementation="org.jetbrains.plugins.clojure.formatter.codeStyle.ClojureCodeStyleSettingsProvider"/> <lang.findUsagesProvider language="Clojure" implementationClass="org.jetbrains.plugins.clojure.findUsages.ClojureFindUsagesProvider"/> <consoleFilterProvider implementation="org.jetbrains.plugins.clojure.runner.console.ClojureConsoleFilterProvider"/> <configurationType implementation="org.jetbrains.plugins.clojure.runner.ClojureScriptRunConfigurationType"/> <configurationProducer implementation="org.jetbrains.plugins.clojure.runner.ClojureScriptRunConfigurationProducer"/> <fileTemplateGroup implementation="org.jetbrains.plugins.clojure.actions.ClojureTemplatesFactory"/> <renameInputValidator implementation="org.jetbrains.plugins.clojure.refactoring.rename.ClojureRenameInputValidator"/> <fileTypeIndentOptionsProvider implementation="org.jetbrains.plugins.clojure.formatter.ClojureIndentOptionsProvider"/> <quoteHandler fileType="Clojure" className="org.jetbrains.plugins.clojure.editor.ClojureQuoteHandler"/> <annotator language="Clojure" implementationClass="org.jetbrains.plugins.clojure.editor.braceHighlighter.ClojureBraceHighlighter"/> <annotator language="Clojure" implementationClass="org.jetbrains.plugins.clojure.annotator.ClojureAnnotator"/> <debuggerClassFilterProvider implementation="org.jetbrains.plugins.clojure.debugger.filters.ClojureDebugClassesFilterProvider"/> <gotoSymbolContributor implementation="org.jetbrains.plugins.clojure.gotoclass.ClojureGoToSymbolContributor"/> <gotoClassContributor implementation="org.jetbrains.plugins.clojure.gotoclass.ClojureGoToClassContributor"/> <xdebugger.settings implementation="org.jetbrains.plugins.clojure.debugger.filters.ClojureDebuggerSettings"/> <indexPatternBuilder implementation="org.jetbrains.plugins.clojure.editor.todo.ClojureIndexPatternBuilder"/> <java.shortNamesCache implementation="org.jetbrains.plugins.clojure.psi.stubs.ClojureShortNamesCache"/> <enterHandlerDelegate implementation="org.jetbrains.plugins.clojure.editor.ClojureEnterHandler" order="first"/> <completion.contributor id="clojureClassNameCompletionContributor" language="Clojure" implementationClass="org.jetbrains.plugins.clojure.psi.resolve.completion.ClojureClassNameCompletionContributor" order="first"/> <completion.contributor id="clojureCompletionContributor" language="Clojure" implementationClass="org.jetbrains.plugins.clojure.psi.resolve.completion.ClojureCompletionContributor" order="first"/> <completion.confidence language="Clojure" implementationClass="org.jetbrains.plugins.clojure.psi.resolve.completion.ClojureCompletionConfidence" id="clojure" order="first"/> <stubElementTypeHolder class="org.jetbrains.plugins.clojure.parser.ClojureElementTypes"/> <stubIndex implementation="org.jetbrains.plugins.clojure.psi.stubs.index.ClDefNameIndex"/> <stubIndex implementation="org.jetbrains.plugins.clojure.psi.stubs.index.ClojureNsNameIndex"/> <stubIndex implementation="org.jetbrains.plugins.clojure.psi.stubs.index.ClojureKeywordIndex"/> <stubIndex implementation="org.jetbrains.plugins.clojure.psi.stubs.index.ClojureClassNameIndex"/> <stubIndex implementation="org.jetbrains.plugins.clojure.psi.stubs.index.ClojureFullScriptNameIndex"/> <extendWordSelectionHandler implementation="org.jetbrains.plugins.clojure.editor.selection.ClojureListSelectioner"/> <extendWordSelectionHandler implementation="org.jetbrains.plugins.clojure.editor.selection.ClojureLiteralSelectioner"/> <debugger.codeFragmentFactory implementation="org.jetbrains.plugins.clojure.debugger.ClojureCodeFragmentFactory"/> <!-- <unscrambleSupport implementation="org.jetbrains.plugins.clojure.debugger.ClojureUnscrambler"/> --> <compilerSettingsFactory implementation="org.jetbrains.plugins.clojure.compiler.ClojureCompilerSettingsFactory"/> <compileServer.plugin classpath="clojure-jps-plugin.jar"/> <frameworkSupport implementation="org.jetbrains.plugins.clojure.config.ClojureFacetSupportProvider"/> <applicationService serviceInterface="org.jetbrains.plugins.clojure.settings.ClojureApplicationSettings" serviceImplementation="org.jetbrains.plugins.clojure.settings.ClojureApplicationSettings"/> <projectService serviceInterface="org.jetbrains.plugins.clojure.psi.util.ClojurePsiFactory" serviceImplementation="org.jetbrains.plugins.clojure.psi.util.ClojurePsiElementFactoryImpl"/> <projectConfigurable implementation="org.jetbrains.plugins.clojure.settings.ClojureConfigurable"/> <projectService serviceInterface="org.jetbrains.plugins.clojure.settings.ClojureProjectSettings" serviceImplementation="org.jetbrains.plugins.clojure.settings.ClojureProjectSettings"/> <java.elementFinder implementation="org.jetbrains.plugins.clojure.psi.impl.javaView.ClojureClassFinder"/> <lang.namesValidator language="Clojure" implementationClass="org.jetbrains.plugins.clojure.refactoring.rename.ClojureNameValidator"/> <referencesSearch implementation="org.jetbrains.plugins.clojure.findUsages.ClojureReferenceSearcher"/> <lang.documentationProvider language="Clojure" implementationClass="org.jetbrains.plugins.clojure.documentation.ClojureDocumentationProvider"/> <renamePsiElementProcessor implementation="org.jetbrains.plugins.clojure.refactoring.rename.RenameClojureFileProcessor" order="first"/> <debugger.positionManagerFactory implementation="org.jetbrains.plugins.clojure.debugger.ClojurePositionManagerFactory"/> <stacktrace.fold substring=" clojure.core"/> <stacktrace.fold substring=" clojure.lang"/> <stacktrace.fold substring=" clojure.main"/> <stacktrace.fold substring=" clojure.test"/> </extensions> <application-components> <component> <implementation-class>org.jetbrains.plugins.clojure.ClojureLoader</implementation-class> </component> <component> <implementation-class>org.jetbrains.plugins.clojure.config.ClojureFacetLoader</implementation-class> <interface-class>org.jetbrains.plugins.clojure.config.ClojureFacetLoader</interface-class> </component> </application-components> <project-components> <component> <implementation-class>org.jetbrains.plugins.clojure.compiler.ClojureCompilerSettings</implementation-class> </component> <component> <implementation-class>org.jetbrains.plugins.clojure.psi.impl.javaView.ClojureClassFinder </implementation-class> </component> <component> <implementation-class>org.jetbrains.plugins.clojure.psi.impl.ClojurePsiManager</implementation-class> </component> </project-components> <actions> <!-- Create file actions --> <action id="Clojure.ClojureFile" class="org.jetbrains.plugins.clojure.actions.NewClojureFileAction" text="Clojure File" description="Create new Clojure File"> <add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewFromTemplate"/> </action> <!-- REPL-related actions --> <group id="Clojure.REPL.Group" class="org.jetbrains.plugins.clojure.repl.actions.ClojureReplActionGroup" text="Clojure REPL" description="Clojure" popup="true"> <action id="org.jetbrains.plugins.clojure.repl.actions.LoadClojureFileInConsoleAction" class="org.jetbrains.plugins.clojure.repl.actions.LoadClojureFileInConsoleAction" text="Load file to REPL"> <keyboard-shortcut keymap="$default" first-keystroke="ctrl shift L"/> </action> <action id="org.jetbrains.plugins.clojure.repl.actions.RunSelectedTextAction" class="org.jetbrains.plugins.clojure.repl.actions.RunSelectedTextAction" text="Run selected text in REPL"> <keyboard-shortcut keymap="$default" first-keystroke="ctrl shift K"/> </action> <action id="org.jetbrains.plugins.clojure.repl.actions.RunLastSExprAction" class="org.jetbrains.plugins.clojure.repl.actions.RunLastSExprAction" text="Execute last S-expression in REPL"> <keyboard-shortcut keymap="$default" first-keystroke="ctrl shift H"/> </action> <action id="org.jetbrains.plugins.clojure.repl.actions.RunTopSExprAction" class="org.jetbrains.plugins.clojure.repl.actions.RunTopSExprAction" text="Run Top S-expression in REPL"> <keyboard-shortcut keymap="$default" first-keystroke="ctrl shift G"/> </action> <action id="org.jetbrains.plugins.clojure.repl.actions.SwitchNamespaceClojureFileInConsoleAction" class="org.jetbrains.plugins.clojure.repl.actions.SwitchNamespaceClojureFileInConsoleAction" text="Switch to file's namespace in REPL"> </action> <add-to-group group-id="ToolsMenu" anchor="last"/> </group> <!-- Structural Editing --> <group id="ClojureStructuralEditingActionGroup" class="org.jetbrains.plugins.clojure.editor.ClojureEditorActionGroup" text="Clojure Editor" description="Clojure" popup="true"> <action id="org.jetbrains.plugins.clojure.actions.editor.BarfBackwardsAction" class="org.jetbrains.plugins.clojure.actions.editor.BarfBackwardsAction" text="Barf Backwards" description="Spit out the first element in the current s-expression"> <keyboard-shortcut keymap="$default" first-keystroke="alt shift 9"/> </action> <action id="org.jetbrains.plugins.clojure.actions.editor.BarfForwardsAction" class="org.jetbrains.plugins.clojure.actions.editor.BarfForwardsAction" text="Barf Forwards" description="Spit out the last element in the current s-expression"> <keyboard-shortcut keymap="$default" first-keystroke="alt shift 0"/> </action> <action id="org.jetbrains.plugins.clojure.actions.editor.SlurpBackwardsAction" class="org.jetbrains.plugins.clojure.actions.editor.SlurpBackwardsAction" text="Slurp Backwards" description="Swallow the element preceeding the current s-expression"> <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt shift 9"/> </action> <action id="org.jetbrains.plugins.clojure.actions.editor.SlurpForwardsAction" class="org.jetbrains.plugins.clojure.actions.editor.SlurpForwardsAction" text="Slurp Forwards" description="Swallow the element following the current s-expression"> <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt shift 0"/> </action> <action id="org.jetbrains.plugins.clojure.actions.editor.SpliceAction" class="org.jetbrains.plugins.clojure.actions.editor.SpliceAction" text="Splice S-Expression" description="Splice the current s-expression into it’s parent"> <keyboard-shortcut keymap="$default" first-keystroke="alt meta S"/> </action> <add-to-group group-id="EditMenu" anchor="last"/> </group> <action id="org.jetbrains.plugins.clojure.actions.RunClojureConsoleAction" class="org.jetbrains.plugins.clojure.actions.RunClojureConsoleAction" text="Start Clojure Console" description="Runs Clojure REPL"> <add-to-group group-id="ToolsMenu" anchor="last"/> <add-to-group group-id="RunContextPopupGroup" anchor="last"/> <keyboard-shortcut first-keystroke="control shift D" keymap="$default"/> </action> <action id="Clojure.Console.Execute" class="com.intellij.openapi.actionSystem.EmptyAction" text="Execute Current Clojure Statement"> <keyboard-shortcut keymap="$default" first-keystroke="ENTER"/> </action> <action id="Clojure.Console.Execute.Immediately" class="com.intellij.openapi.actionSystem.EmptyAction" text="Execute Current Clojure Statement"> <keyboard-shortcut keymap="$default" first-keystroke="shift ENTER"/> </action> </actions> </idea-plugin>