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>