| <!-- |
| Copyright 2000-2026 JetBrains s.r.o. and contributors. |
| |
| 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 xmlns:xi="http://www.w3.org/2001/XInclude" package="org.apache.grails.intellij.plugin"> |
| <id>org.intellij.grails</id> |
| <name>Apache Grails</name> |
| <category>JVM Frameworks</category> |
| <description> |
| <![CDATA[ |
| Provides integration with the <a href="https://grails.apache.org">Apache Grails</a> framework. |
| <ul> |
| <li>Import a generated Grails project or create a new one directly from the IDE</li> |
| <li>Switch to the <b>Grails</b> view in the <b>Project</b> tool window</li> |
| <li>Edit Grails files with coding assistance features, such as code completion, navigation, inspections, refactoring, and much more</li> |
| <li>Use dedicated Grails run/debug configurations</li> |
| </ul> |
| ]]> |
| </description> |
| <vendor url="https://grails.apache.org/">Apache Software Foundation</vendor> |
| |
| <dependencies> |
| <plugin id="com.intellij.java"/> |
| <plugin id="com.intellij.javaee"/> |
| <plugin id="com.intellij.javaee.web"/> |
| <module name="intellij.javaee.platform"/> |
| <module name="intellij.javaee.platform.impl"/> |
| <plugin id="com.intellij.persistence"/> |
| <plugin id="com.intellij.javaee.jpa"/> |
| <plugin id="com.intellij.jsp"/> |
| <plugin id="com.intellij.javaee.el"/> |
| <plugin id="org.intellij.groovy"/> |
| <plugin id="com.intellij.properties"/> |
| <plugin id="com.intellij.database"/> |
| |
| <plugin id="com.intellij.spring"/> |
| <module name="intellij.spring"/> |
| <module name="intellij.spring.core"/> |
| |
| <plugin id="org.jetbrains.plugins.gradle"/> |
| <plugin id="com.intellij.modules.ultimate"/> |
| <plugin id="com.intellij.microservices.jvm"/> |
| <module name="intellij.properties.backend"/> |
| <module name="intellij.properties.backend.psi"/> |
| <module name="intellij.regexp"/> |
| </dependencies> |
| |
| <content namespace="grails"> |
| <module name="org.apache.grails.intellij.module.copyright"/> |
| <module name="org.apache.grails.intellij.module.i18n"/> |
| <module name="org.apache.grails.intellij.module.maven"/> |
| <module name="org.apache.grails.intellij.module.hibernate"/> |
| <module name="org.apache.grails.intellij.module.langInjection"/> |
| <module name="org.apache.grails.intellij.module.coverage"/> |
| </content> |
| |
| <depends optional="true" config-file="grails-js-integration.xml">JavaScript</depends> |
| <depends optional="true" config-file="grails-css-integration.xml">com.intellij.css</depends> |
| |
| <resource-bundle>messages.GrailsBundle</resource-bundle> |
| |
| <extensionPoints> |
| <extensionPoint name="facetProvider" dynamic="true" interface="org.apache.grails.intellij.plugin.util.GrailsFacetProvider"/> |
| <extensionPoint name="applicationProvider" dynamic="true" interface="org.apache.grails.intellij.plugin.structure.GrailsApplicationProvider"/> |
| <extensionPoint name="commandExecutor" dynamic="true" interface="org.apache.grails.intellij.plugin.runner.GrailsCommandExecutor"/> |
| <extensionPoint name="commandProvider" dynamic="true" interface="org.apache.grails.intellij.plugin.commands.GrailsCommandProvider"/> |
| <extensionPoint name="artefactHandler" dynamic="true" interface="org.apache.grails.intellij.plugin.artefact.api.GrailsArtefactHandler"/> |
| <extensionPoint name="viewNodeProvider" dynamic="true" interface="org.apache.grails.intellij.plugin.projectView.api.GrailsViewNodeProvider"/> |
| <extensionPoint name="gspJsInjectionTag" dynamic="true" beanClass="org.apache.grails.intellij.plugin.addins.js.GspJsInjectionTagBean"/> |
| </extensionPoints> |
| |
| <extensions defaultExtensionNs="org.jetbrains.plugins.gradle"> |
| <projectResolve implementation="org.apache.grails.intellij.plugin.gradle.GrailsProjectResolverExtension"/> |
| <taskManager implementation="org.apache.grails.intellij.plugin.gradle.GrailsTaskManagerExtension"/> |
| </extensions> |
| |
| <extensions defaultExtensionNs="org.intellij.grails"> |
| <commandExecutor implementation="org.apache.grails.intellij.plugin.runner.impl.Grails3GradleCommandExecutor"/> |
| <commandExecutor implementation="org.apache.grails.intellij.plugin.runner.impl.GrailsInstallationCommandExecutor"/> |
| <commandExecutor implementation="org.apache.grails.intellij.plugin.runner.impl.Grails3InstallationCommandExecutor"/> |
| <facetProvider implementation="org.apache.grails.intellij.plugin.spring.GrailsSpringFacetProvider"/> |
| <facetProvider implementation="org.apache.grails.intellij.plugin.util.GrailsWebFacetProvider"/> <!--j2ee plugin--> |
| <applicationProvider id="default" implementation="org.apache.grails.intellij.plugin.structure.impl.PlainGrailsApplicationProvider"/> |
| <applicationProvider implementation="org.apache.grails.intellij.plugin.structure.impl.Grails3ApplicationProvider"/> |
| <commandProvider implementation="org.apache.grails.intellij.plugin.commands.OldGrailsCommandProvider"/> |
| <commandProvider implementation="org.apache.grails.intellij.plugin.commands.Grails3CommandProvider"/> |
| <viewNodeProvider implementation="org.apache.grails.intellij.plugin.projectView.impl.GrailsAppNodeProvider"/> |
| <viewNodeProvider implementation="org.apache.grails.intellij.plugin.projectView.impl.OldGrailsNodeProvider"/> |
| <viewNodeProvider implementation="org.apache.grails.intellij.plugin.projectView.impl.Grails3NodeProvider"/> |
| |
| <!-- asset-pipeline: <asset:script> bodies are inline JavaScript (deferred scripts). --> |
| <gspJsInjectionTag name="asset:script"/> |
| </extensions> |
| |
| <extensions defaultExtensionNs="org.intellij.groovy"> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.GrailsArtifactNonCodeMemberProcessor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.CodecNonCodeMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.pluginClass.GrailsPluginClassMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.GrailsResourceClassMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.filter.GrailsFilterClosureMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.domain.criteria.CriteriaBuilderImplicitMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.domain.criteria.BuildableCriteriaImplicitMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.config.BuildConfigMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.config.ConfigMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.spring.GrailsWebApplicationContextMembersContributor"/> <!-- Spring Support --> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.tests.GrailsTestMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.constraints.GrailsValidationMethodsContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.pluginSupport.seachable.SearchableMemberMethodContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.pluginSupport.webflow.WebFlowMethodContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.domain.criteria.CriteriaClosureMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.domain.namedQuery.NamedCriteriaProxyMembersContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.pluginSupport.resources.GrailsResourcesClosureMethodContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.domain.detachedCriteria.DetachedCriteriaClosureMemberProvider"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.domain.detachedCriteria.DetachedCriteriaMemberProvider"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.controller.HttpRequestMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.references.controller.HttpResponseMemberContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.spring.GrailsResourcesGroovyMemberContributor"/> |
| <astTransformationSupport implementation="org.apache.grails.intellij.plugin.lang.Grails3TraitInjectorContributor"/> |
| |
| <closureMissingMethodContributor implementation="org.apache.grails.intellij.plugin.pluginSupport.webflow.WebFlowEventDefinitionMethodContributor"/> |
| <closureMissingMethodContributor implementation="org.apache.grails.intellij.plugin.references.GrailsClosureMemberContributor"/> |
| <closureMissingMethodContributor implementation="org.apache.grails.intellij.plugin.references.constraints.GrailsConstraintsClosureMemberProvider"/> |
| <closureMissingMethodContributor implementation="org.apache.grails.intellij.plugin.references.urlMappings.UrlMappingConstraintClosureMemberProvider"/> |
| <closureMissingMethodContributor implementation="org.apache.grails.intellij.plugin.references.constraints.GrailsConstraintsGroupClosureMemberProvider"/> |
| |
| <closureMissingMethodContributor implementation="org.apache.grails.intellij.plugin.config.BuildConfigClosureMemberContributor"/> |
| |
| <methodComparator implementation="org.apache.grails.intellij.plugin.references.controller.GspTagMethodComparator"/> |
| <overloadResolver implementation="org.apache.grails.intellij.plugin.references.controller.GspTagMethodOverloadResolver"/> |
| |
| <typeCalculator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethodCall" |
| implementationClass="org.apache.grails.intellij.plugin.references.domain.criteria.CriteriaReturnTypeCalculator"/> |
| |
| <groovySourceFolderDetector implementation="org.apache.grails.intellij.plugin.actions.GrailsGroovySourceFolderDetector"/> |
| |
| <referenceTypeEnhancer implementation="org.apache.grails.intellij.plugin.pluginSupport.spock.GrailsSpockEnhancer"/> |
| <referenceTypeEnhancer implementation="org.apache.grails.intellij.plugin.tests.GrailsTestVariableEnhancer"/> |
| <referenceTypeEnhancer implementation="org.apache.grails.intellij.plugin.util.PredefinedTypeReferenceEnhancer"/> |
| <variableEnhancer implementation="org.apache.grails.intellij.plugin.references.pluginClass.GrailsPluginParameterEnhancer"/> |
| <variableEnhancer implementation="org.apache.grails.intellij.plugin.spring.InjectedSpringBeanProvider"/> |
| <variableEnhancer implementation="org.apache.grails.intellij.plugin.references.taglib.TaglibClosureParamEnhancer"/> |
| <variableEnhancer implementation="org.apache.grails.intellij.plugin.references.constraints.GrailsValidatorParamTypeEnhancer"/> |
| |
| <scriptTypeDetector implementation="org.apache.grails.intellij.plugin.GantFileDetector"/> |
| |
| <mapContentProvider implementation="org.apache.grails.intellij.plugin.GrailsFlashMapContentProvider"/> |
| |
| <namedArgumentProvider implementation="org.apache.grails.intellij.plugin.references.domain.criteria.CriteriaBuilderNamedArgumentProvider"/> |
| <namedArgumentProvider implementation="org.apache.grails.intellij.plugin.references.urlMappings.UrlMappingNamedArgumentProvider"/> |
| |
| <astTransformationSupport implementation="org.apache.grails.intellij.plugin.references.domain.GormAstTransformationContributor" |
| order="before defaultSupport"/> |
| |
| <unresolvedHighlightFileFilter implementation="org.apache.grails.intellij.plugin.config.GrailsConfigUnresolvedFileFilter"/> |
| <unresolvedHighlightFilter implementation="org.apache.grails.intellij.plugin.references.urlMappings.UrlMappingUnresolvedHighlightingFilter"/> |
| |
| <configSlurperSupport implementation="org.apache.grails.intellij.plugin.config.BuildConfigSupport"/> |
| <configSlurperSupport implementation="org.apache.grails.intellij.plugin.config.ConfigSupport"/> |
| <configSlurperSupport implementation="org.apache.grails.intellij.plugin.config.DataSourcesSupport"/> |
| |
| <methodMayBeStaticInspectionFilter implementation="org.apache.grails.intellij.plugin.inspections.GrailsMethodMayBeStaticFilter" /> |
| <astTransformationSupport implementation="org.apache.grails.intellij.plugin.lang.DirtyCheckableContributor"/> |
| <astTransformationSupport implementation="org.apache.grails.intellij.plugin.lang.GormTraitContributor"/> |
| <gdslScriptProvider implementation="org.apache.grails.intellij.plugin.dsl.GrailsScriptProvider"/> |
| |
| <!--grails.rest.Linkable--> |
| <astTransformationSupport implementation="org.apache.grails.intellij.plugin.feature.linkable.LinkableTransformationSupport"/> |
| <namedArgumentProvider implementation="org.apache.grails.intellij.plugin.feature.linkable.LinkableNamedArgumentsProvider"/> |
| |
| <delegatesToProvider |
| implementation="org.apache.grails.intellij.plugin.references.domain.detachedCriteria.DetachedCriteriaDelegatesToProvider"/> |
| </extensions> |
| |
| <extensions defaultExtensionNs="com.intellij"> |
| <registryKey key="grails.advanced.mode" defaultValue="false" |
| description="Use to enable advanced mode for the domain class relations editor."/> |
| <registryKey key="grails.simple.debug" defaultValue="false" |
| description="Use simple debug strategy: pass --debug-jvm and then poll 5005. This switch works only for Grails >= 3.1.5."/> |
| <registryKey key="grails.add.plain.output" defaultValue="true" |
| description="Add --plain-output to Grails commands even it was not specified explicitly. This switch works only for Grails >= 3.0"/> |
| <registryKey key="grails.create.run.configurations" defaultValue="true" |
| description="Create run configurations on startup"/> |
| <registryKey key="grails.cli.project.wizard" defaultValue="false" |
| description="Show new project Grails wizard"/> |
| |
| <internalFileTemplate name="Groovy Server Page"/> |
| <externalProjectDataService implementation="org.apache.grails.intellij.plugin.gradle.GrailsModuleGradleDataService"/> |
| |
| <fileBasedIndex implementation="org.apache.grails.intellij.plugin.lang.gsp.gspIndex.GspIncludeIndex" /> |
| |
| <referencesSearch implementation="org.apache.grails.intellij.plugin.lang.gsp.search.JspPageReferenceSearcher"/> <!--j2ee plugin--> |
| |
| <consoleFilterProvider implementation="org.apache.grails.intellij.plugin.GrailsConsoleFilterProvider"/> |
| |
| <library.presentationProvider implementation="org.apache.grails.intellij.plugin.config.GrailsLibraryPresentationProvider"/> |
| |
| <!--suppress PluginXmlValidity --> |
| <moduleBuilder builderClass="org.apache.grails.intellij.plugin.config.GrailsModuleBuilder" order="before griffonModuleBuilder"/> |
| <moduleBuilder builderClass="org.apache.grails.intellij.plugin.feature.forge.GrailsForgeModuleBuilder"/> |
| <projectStructureDetector implementation="org.apache.grails.intellij.plugin.config.GrailsProjectStructureDetector" order="before groovyDetector"/> |
| |
| <programRunner implementation="org.apache.grails.intellij.plugin.runner.GrailsAppEngineDebuggerRunner"/> |
| <programRunner implementation="org.apache.grails.intellij.plugin.runner.GrailsDebuggerRunner" id="grailsDebuggerRunner"/> |
| |
| <editorNotificationProvider implementation="org.apache.grails.intellij.plugin.annotator.GrailsForkSettingsNotificator"/> |
| |
| <fileType name="GSP" language="GSP" extensions="gsp" |
| implementationClass="org.apache.grails.intellij.plugin.fileType.GspFileType" fieldName="GSP_FILE_TYPE"/> |
| <fileEditorProvider implementation="org.apache.grails.intellij.plugin.perspectives.DomainClassesRelationsEditorProvider"/> |
| <annotator language="Groovy" implementationClass="org.apache.grails.intellij.plugin.annotator.GrailsDomainAnnotator"/> |
| <annotator language="Groovy" implementationClass="org.apache.grails.intellij.plugin.annotator.GrailsSynchronizeStructureAnnotator"/> |
| <annotator language="Groovy" implementationClass="org.apache.grails.intellij.plugin.annotator.GrailsControllerAnnotator"/> |
| <liveTemplateContext contextId="GSP" implementation="org.apache.grails.intellij.plugin.GspTemplateContextType"/> |
| |
| <lang.inspectionSuppressor language="GSP" implementationClass="org.apache.grails.intellij.plugin.inspections.GspSuppressionProvider"/> |
| |
| <completion.contributor language="Groovy" implementationClass="org.apache.grails.intellij.plugin.GrailsCompletionContributor"/> |
| <completion.contributor language="Groovy" implementationClass="org.apache.grails.intellij.plugin.references.controller.ControllerAllowedMethodCompletionProvider" order="before groovyBasic"/> |
| <completion.contributor language="Groovy" implementationClass="org.apache.grails.intellij.plugin.config.GrailsPluginNameCompletionContributor"/> |
| <completion.contributor language="GSP" implementationClass="org.apache.grails.intellij.plugin.GspCompletionContributor"/> |
| <completion.contributor language="HTML" implementationClass="org.apache.grails.intellij.plugin.GspCompletionContributor"/> |
| |
| <renamePsiElementProcessor implementation="org.apache.grails.intellij.plugin.references.controller.ActionRenameProcessor" order="last"/> |
| <renamePsiElementProcessor implementation="org.apache.grails.intellij.plugin.references.controller.ControllerRenameProcessor" order="last"/> |
| <renamePsiElementProcessor implementation="org.apache.grails.intellij.plugin.references.GrailsArtifactRenameProcessor" order="last"/> |
| <renamePsiElementProcessor implementation="org.apache.grails.intellij.plugin.references.domain.DomainFieldRenameProcessor" |
| order="first, before groovyFieldRenameProcessor, before jpaAttributeRenameProcessor"/> |
| |
| <attachSourcesProvider implementation="org.apache.grails.intellij.plugin.GrailsAttachSourcesProvider" /> |
| |
| <xml.xmlTagRuleProvider implementation="org.apache.grails.intellij.plugin.lang.gsp.psi.gsp.impl.gtag.GspTagRuleProvider" /> |
| <xml.xmlExtension implementation="org.apache.grails.intellij.plugin.lang.gsp.psi.html.impl.GspHtmlXmlExtension" |
| id="gsp-html" order="after poly-symbols"/> |
| |
| <localInspection language="GSP" enabledByDefault="true" |
| groupPathKey="inspections.groupPath" groupKey="inspections.groupName" key="language.gsp" |
| shortName="GspInspection" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.GspTagInspection"/> |
| |
| <syntaxHighlighter key="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.highlighter.GspSyntaxHighlighter"/> |
| <editorHighlighterProvider filetype="GSP" |
| implementationClass="org.apache.grails.intellij.plugin.lang.gsp.highlighter.GspEditorHighlighterProvider"/> |
| <lang.braceMatcher language="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.highlighter.GspPairedBraceMatcher"/> |
| <braceMatcher filetype="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.highlighter.GspFileBraceMatcher"/> |
| <lang.commenter language="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.highlighter.GspCommenter"/> |
| <lang.foldingBuilder language="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.folding.GspFoldingBuilder"/> |
| <lang.formatter language="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.formatter.GspFormattingModelBuilder"/> |
| <lang.parserDefinition language="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.parsing.gsp.GspParserDefinition"/> |
| <lang.fileViewProviderFactory language="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.GspFileviewProviderFactory"/> |
| <codeStyleSettingsProvider implementation="org.apache.grails.intellij.plugin.lang.gsp.formatter.settings.GspCodeStyleSettingsProvider"/> |
| <langCodeStyleSettingsProvider implementation="org.apache.grails.intellij.plugin.lang.gsp.formatter.settings.GspLanguageCodeStyleSettingsProvider"/> |
| |
| <psi.referenceContributor language="Groovy" implementation="org.apache.grails.intellij.plugin.GrailsGroovyCodeReferenceContributor"/> |
| |
| <psi.referenceContributor language="HTML" implementation="org.apache.grails.intellij.plugin.GrailsHtmlReferenceContributor"/> |
| <psi.referenceContributor language="GSP" implementation="org.apache.grails.intellij.plugin.GrailsGspReferenceContributor"/> |
| |
| <referencesSearch implementation="org.apache.grails.intellij.plugin.lang.gsp.search.GspPageReferenceSearcher"/> |
| <referencesSearch implementation="org.apache.grails.intellij.plugin.lang.gsp.search.GspControllerReferenceSearcher"/> |
| <referencesSearch implementation="org.apache.grails.intellij.plugin.references.common.ArtifactFieldReferenceSearcher"/> |
| <methodReferencesSearch implementation="org.apache.grails.intellij.plugin.references.common.ArtifactPropertyGetterReferenceSearcher"/> |
| <referencesSearch implementation="org.apache.grails.intellij.plugin.lang.gsp.resolve.taglib.BuiltInTagReferenceSearcher"/> |
| |
| <methodReferencesSearch implementation="org.apache.grails.intellij.plugin.pluginSupport.resources.GrailsResourceReferenceSearcher"/> |
| |
| <debugger.codeFragmentFactory implementation="org.apache.grails.intellij.plugin.lang.gsp.debug.GspCodeFragmentFactory"/> |
| |
| <problemHighlightFilter implementation="org.apache.grails.intellij.plugin.TemplateHighlightErrorFilter"/> |
| |
| <lang.findUsagesProvider language="GSP" implementationClass="org.apache.grails.intellij.plugin.GspFindUsagesProvider"/> |
| |
| <lang.unwrapDescriptor language="GSP" implementationClass="com.intellij.lang.xml.XmlUnwrapDescriptor"/> |
| |
| <gotoClassContributor implementation="org.apache.grails.intellij.plugin.actions.GrailsGoToClassContributor"/> |
| |
| <codeInsight.parameterInfo language="GSP" |
| implementationClass="org.jetbrains.plugins.groovy.lang.parameterInfo.GroovyParameterInfoHandler"/> |
| |
| <enterHandlerDelegate implementation="org.apache.grails.intellij.plugin.lang.gsp.editor.actions.GspEnterHandler"/> |
| <typedHandler implementation="org.apache.grails.intellij.plugin.lang.gsp.editor.actions.GspTypedHandler" order="last" /> |
| <braceMatcher filetype="GSP" implementationClass="com.intellij.xml.impl.XmlBraceMatcher"/> |
| |
| <configurationType implementation="org.apache.grails.intellij.plugin.runner.GrailsRunConfigurationType"/> |
| |
| <runConfigurationProducer implementation="org.apache.grails.intellij.plugin.runner.GrailsScriptRunConfigurationProducer"/> |
| <runConfigurationProducer implementation="org.apache.grails.intellij.plugin.tests.runner.GrailsTestConfigurationProducer"/> |
| |
| <projectService serviceInterface="org.apache.grails.intellij.plugin.lang.gsp.psi.GspPsiElementFactory" |
| serviceImplementation="org.apache.grails.intellij.plugin.lang.gsp.psi.GspPsiElementFactoryImpl"/> |
| |
| <xml.fileNSInfoProvider implementation="org.apache.grails.intellij.plugin.lang.gsp.completion.GspXmlFileNSInfoProvider"/> |
| <xml.elementDescriptorProvider implementation="org.apache.grails.intellij.plugin.lang.gsp.psi.gsp.impl.gtag.GspContentTagDescriptorProvider" |
| order="first"/> |
| |
| <extendWordSelectionHandler implementation="org.apache.grails.intellij.plugin.editor.selection.GrailsGroovyInjectionSelectioner"/> |
| <extendWordSelectionHandler implementation="org.apache.grails.intellij.plugin.editor.selection.GrailsDependencySelectioner"/> |
| |
| <highlightErrorFilter implementation="org.apache.grails.intellij.plugin.lang.gsp.GspErrorFilter" /> |
| |
| <projectService serviceImplementation="org.apache.grails.intellij.plugin.config.GrailsSettingsService"/> |
| |
| <projectService serviceImplementation="org.apache.grails.intellij.plugin.lang.gsp.psi.gsp.impl.gtag.GspTagDescriptorService"/> |
| |
| <pom.declarationSearcher implementation="org.apache.grails.intellij.plugin.lang.gsp.psi.groovy.impl.ModelVariableDeclarationSearcher"/> |
| <pom.declarationSearcher implementation="org.apache.grails.intellij.plugin.lang.gsp.psi.gsp.impl.gtag.GspTagVariableDeclarationSearcher"/> |
| <pom.declarationSearcher implementation="org.apache.grails.intellij.plugin.references.domain.namedQuery.GormNamedQueryDeclarationSearcher"/> |
| <pom.declarationSearcher implementation="org.apache.grails.intellij.plugin.references.domain.GrailsSyntheticFieldDeclarationSearcher"/> |
| <pom.declarationSearcher implementation="org.apache.grails.intellij.plugin.pluginSupport.resources.GrailsResourcesPomDeclarationSearcher"/> |
| |
| <pom.declarationSearcher implementation="org.apache.grails.intellij.plugin.pluginSupport.webflow.WebFlowPomDeclarationSearcher"/> |
| |
| <!-- Each entry must match a jar in the plugin's lib/ directory exactly; JPS resolves them by |
| name and silently skips anything it cannot find, so a stale entry disables the Grails JPS |
| builders with nothing more than a line in idea.log. These names are pinned by the |
| org.apache.grails.intellij.build.intellij-lib convention plugin rather than derived from |
| rootProject.name, which is what let this attribute go stale previously. --> |
| <compileServer.plugin classpath="org.apache.grails.intellij.compiler.jps-plugin.jar;org.apache.grails.intellij.compiler.grails-compiler-patch.jar"/> |
| |
| <multiHostInjector implementation="org.apache.grails.intellij.plugin.lang.gsp.GspCssInjector"/> |
| <multiHostInjector implementation="org.apache.grails.intellij.plugin.references.constraints.GormRegexInjector"/> |
| <multiHostInjector implementation="org.apache.grails.intellij.plugin.references.domain.GormHqlInjector"/> |
| |
| <gotoRelatedProvider implementation="org.apache.grails.intellij.plugin.actions.GrailsGotoRelatedProvider"/> |
| |
| <indexPatternBuilder implementation="org.apache.grails.intellij.plugin.lang.gsp.highlighter.GspIndexPatternBuilder" /> |
| |
| <junitRecognizer implementation="org.apache.grails.intellij.plugin.tests.GrailsJUnitRecognizer" /> |
| |
| <lang.elementManipulator forClass="org.apache.grails.intellij.plugin.lang.gsp.psi.groovy.impl.GspOuterHtmlElementImpl" |
| implementationClass="org.apache.grails.intellij.plugin.lang.gsp.psi.groovy.impl.GspOuterHtmlElementManipulator"/> |
| |
| <implicitUsageProvider implementation="org.apache.grails.intellij.plugin.GrailsImplicitUsageProvider"/> |
| |
| <lang.documentationProvider language="GSP" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.GspTagDocumentationProvider"/> |
| <lang.documentationProvider language="Groovy" implementationClass="org.apache.grails.intellij.plugin.lang.gsp.GspTagDocumentationProvider"/> |
| |
| <database.dataSourceDetector implementation="org.apache.grails.intellij.plugin.database.GrailsDataSourceDetector"/> |
| |
| <intentionAction> |
| <language>Groovy</language> |
| <className>org.apache.grails.intellij.plugin.actions.GenerateViewIntention</className> |
| <categoryKey>library.name</categoryKey> |
| </intentionAction> |
| |
| <intentionAction> |
| <language>Groovy</language> |
| <className>org.apache.grails.intellij.plugin.actions.MakeNullableIntention</className> |
| <categoryKey>library.name</categoryKey> |
| </intentionAction> |
| |
| <intentionAction> |
| <language>Groovy</language> |
| <className>org.apache.grails.intellij.plugin.actions.MakeUniqueIntention</className> |
| <categoryKey>library.name</categoryKey> |
| </intentionAction> |
| |
| <intentionAction> |
| <language>Groovy</language> |
| <className>org.apache.grails.intellij.plugin.actions.GrailsCreateActionByUsageIntention</className> |
| <categoryKey>library.name</categoryKey> |
| </intentionAction> |
| |
| <!-- Spring Support --> |
| <renamePsiElementProcessor implementation="org.apache.grails.intellij.plugin.spring.GrLightVariableRenameProcessor" id="GrLightVariableRenameProcessor"/> |
| <spring.customModuleComponentsDiscoverer implementation="org.apache.grails.intellij.plugin.spring.GrailsSpringBeanDiscoverer"/> |
| |
| <codeInsight.lineMarkerProvider language="Groovy" implementationClass="org.apache.grails.intellij.plugin.spring.SpringInjectionAnnotator"/> |
| |
| <completion.contributor language="Groovy" implementationClass="org.apache.grails.intellij.plugin.spring.GrailsInjectedBeanCompletionContributor" order="before groovyBasic"/> |
| <aliasingPsiTargetMapper implementation="org.apache.grails.intellij.plugin.spring.SpringGrailsTargetMapper"/> |
| <aliasingPsiTargetMapper implementation="org.apache.grails.intellij.plugin.spring.GrailsSpringStereotypeAliasingPsiTargetMapper"/> |
| <referencesSearch implementation="org.apache.grails.intellij.plugin.spring.SpringBeanReferenceSearcher"/> |
| |
| <debugger.positionManagerFactory implementation="org.apache.grails.intellij.plugin.lang.gsp.debug.GspPositionManagerFactory"/> |
| |
| <defaultLiveTemplates file="liveTemplates/gsp.xml"/> |
| <iconProvider implementation="org.apache.grails.intellij.plugin.projectView.GrailsIconProvider"/> |
| <postStartupActivity implementation="org.apache.grails.intellij.plugin.structure.sync.GrailsStartupActivity"/> |
| <postStartupActivity implementation="org.apache.grails.intellij.plugin.structure.GrailsApplicationManagerRefresher"/> |
| <backgroundPostStartupActivity implementation="org.apache.grails.intellij.plugin.structure.sync.GrailsMvcStructureRefresher"/> |
| <editorNotificationProvider implementation="org.apache.grails.intellij.plugin.editor.GrailsEditorDecorator"/> |
| <projectViewPane implementation="org.apache.grails.intellij.plugin.projectView.GrailsProjectViewPane"/> |
| <treeStructureProvider implementation="org.apache.grails.intellij.plugin.projectView.GrailsTreeStructureProvider"/> |
| <multiHostInjector implementation="org.apache.grails.intellij.plugin.pluginSupport.assetPipeline.AssetScriptInjector"/> |
| <psi.referenceContributor language="GSP" |
| implementation="org.apache.grails.intellij.plugin.pluginSupport.assetPipeline.AssetReferenceContributor"/> |
| <semContributor implementation="org.apache.grails.intellij.plugin.spring.GrailsSpringSemContributor"/> |
| |
| <ignoredFileProvider implementation="org.apache.grails.intellij.plugin.config.GrailsIgnoredProvider"/> |
| <notificationGroup id="Grails notifications" displayType="TOOL_WINDOW" toolWindowId="Grails Console" bundle="messages.GrailsBundle" key="notification.group.grails.notifications"/> |
| <notificationGroup id="grails" displayType="BALLOON" bundle="messages.GrailsBundle" key="notification.group.grails"/> |
| <notificationGroup id="Grails Configure" displayType="BALLOON" key="notification.group.display.name.grails.configure"/> |
| <postStartupActivity implementation="org.apache.grails.intellij.plugin.mvc.MvcModuleStructureSynchronizer$MyPostStartUpActivity"/> |
| <roots.watchedRootsProvider implementation="org.apache.grails.intellij.plugin.mvc.MvcWatchedRootProvider"/> |
| <pathMacroContributor implementation="org.apache.grails.intellij.plugin.mvc.MvcPathMacros"/> |
| |
| <dependencySupport coordinate="org.grails:grails-core" kind="java" displayName="Grails Framework"/> |
| <dependencySupport coordinate="org.grails:grails-datastore-gorm" kind="java" displayName="GORM"/> |
| </extensions> |
| |
| <actions> |
| <action id="grails.ViewGrailsEditorToolbarAction" class="org.apache.grails.intellij.plugin.editor.ViewGrailsEditorToolbarAction"> |
| <add-to-group group-id="UIToggleActions" anchor="after" relative-to-action="ViewToolButtons"/> |
| </action> |
| |
| <group id="grails.toolbar"> |
| <group |
| id="grails.goto.domain" |
| class="org.apache.grails.intellij.plugin.editor.toolbar.GoToDomainAction" |
| icon="AllIcons.Nodes.DataTables"/> |
| <group |
| id="grails.goto.controller" |
| class="org.apache.grails.intellij.plugin.editor.toolbar.GoToControllerAction" |
| icon="AllIcons.Nodes.Controller"/> |
| <group |
| id="grails.goto.service" |
| class="org.apache.grails.intellij.plugin.editor.toolbar.GoToServiceAction" |
| icon="AllIcons.FileTypes.Config"/> |
| <group |
| id="grails.goto.view" |
| class="org.apache.grails.intellij.plugin.editor.toolbar.GoToViewAction" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Gsp_logo"/> |
| <group |
| id="grails.goto.test" |
| class="org.apache.grails.intellij.plugin.editor.toolbar.GoToTestAction" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Grails_test"/> |
| </group> |
| |
| <group id="Grails" class="org.apache.grails.intellij.plugin.actions.GrailsActionGroup" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Grails"> |
| <action |
| id="Grails.DomainClass" |
| class="org.apache.grails.intellij.plugin.actions.NewGrailsDomainClassAction" |
| icon="AllIcons.Nodes.DataTables"/> |
| <action |
| id="Grails.Controller" |
| class="org.apache.grails.intellij.plugin.actions.NewGrailsControllerAction" |
| icon="AllIcons.Nodes.Controller"/> |
| <action |
| id="Grails.Service" |
| class="org.apache.grails.intellij.plugin.actions.NewGrailsServiceAction" |
| icon="AllIcons.FileTypes.Config"/> |
| <action |
| id="Grails.Interceptor" |
| class="org.apache.grails.intellij.plugin.actions.NewGrailsInterceptorAction" |
| icon="AllIcons.General.Filter"/> |
| <action |
| id="Grails.Filter" |
| class="org.apache.grails.intellij.plugin.actions.NewGrailsFilterAction" |
| icon="AllIcons.General.Filter"/> |
| <action |
| id="Grails.Script" |
| class="org.apache.grails.intellij.plugin.actions.NewGrailsScriptAction" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Grails"/> |
| <action |
| id="Grails.TagLib" |
| class="org.apache.grails.intellij.plugin.actions.NewGrailsTagLibAction" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Taglib"/> |
| <action id="Grails.GSP" class="org.apache.grails.intellij.plugin.actions.NewGspAction" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Gsp_logo"/> |
| <separator/> |
| <add-to-group group-id="NewGroup" anchor="first"/> |
| </group> |
| |
| <!-- old id kept to avoid breaking user keymaps --> |
| <action id="Mvc.RunTarget" class="org.apache.grails.intellij.plugin.actions.GrailsRunCommandAction"> |
| <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt G"/> |
| <add-to-group group-id="ProjectViewPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/> |
| <add-to-group group-id="NavbarPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/> |
| <add-to-group group-id="ToolsMenu" anchor="last"/> |
| </action> |
| |
| <group id="Grails.Actions" class="org.apache.grails.intellij.plugin.actions.GrailsActionGroup" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Grails" popup="true"> |
| <action id="Grails.Plugins" |
| class="org.apache.grails.intellij.plugin.mvc.plugins.MvcPluginsAction" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Groovy_mvc_plugin"/> |
| <action id="Grails.ChangeSDK" class="org.apache.grails.intellij.plugin.actions.GrailsConfigureSDKAction" |
| icon="org.apache.grails.intellij.plugin.GroovyMvcIcons.Grails"/> |
| <action id="Grails.UpdateSettings" class="org.apache.grails.intellij.plugin.actions.UpdateGrailsSettingsAction" |
| icon="AllIcons.Actions.Refresh"/> |
| <reference ref="Mvc.RunTarget"/> |
| <add-to-group group-id="ProjectViewPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/> |
| <add-to-group group-id="NavbarPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/> |
| <add-to-group group-id="ToolsMenu" anchor="last"/> |
| </group> |
| |
| <action id="Generate.GrailsView" |
| class="org.apache.grails.intellij.plugin.actions.GrailsGenerateViewAction"> |
| <add-to-group group-id="GenerateGroup"/> |
| </action> |
| |
| <action id="Grails.WAR" class="org.apache.grails.intellij.plugin.actions.GrailsWarAction"> |
| <add-to-group group-id="BuildMenu" anchor="last"/> |
| </action> |
| </actions> |
| |
| <xi:include href="grails-method-descriptors.xml"/> |
| |
| <!-- GSON --> |
| <extensions defaultExtensionNs="com.intellij"> |
| <fileType name="Groovy" extensions="gson"/> |
| <psi.referenceContributor language="Groovy" implementation="org.apache.grails.intellij.plugin.gson.GsonReferenceContributor"/> |
| <readWriteAccessDetector id="gson" order="before defaultGroovy" |
| implementation="org.apache.grails.intellij.plugin.gson.GsonRWAccessDetector"/> |
| <referencesSearch implementation="org.apache.grails.intellij.plugin.gson.GsonTemplateReferenceQueryExecutor"/> |
| </extensions> |
| <extensions defaultExtensionNs="org.intellij.groovy"> |
| <expectedPackageNameProvider implementation="org.apache.grails.intellij.plugin.gson.GsonExpectedPackageProvider"/> |
| <importContributor implementation="org.apache.grails.intellij.plugin.gson.GsonImportContributor"/> |
| <astTransformationSupport implementation="org.apache.grails.intellij.plugin.gson.GsonTransformationSupport" order="before defaultSupport"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.gson.GrailsStreamingJsonBuilderContributor"/> |
| <membersContributor implementation="org.apache.grails.intellij.plugin.gson.GsonTemplateRendererContributor"/> |
| <namedArgumentProvider implementation="org.apache.grails.intellij.plugin.gson.GsonModelArgumentsProvider"/> |
| <namedArgumentProvider implementation="org.apache.grails.intellij.plugin.gson.GsonRenderNamedArgumentsProvider"/> |
| <positionManagerDelegate implementation="org.apache.grails.intellij.plugin.gson.GsonPositionManagerDelegate"/> |
| </extensions> |
| </idea-plugin> |