[groovy] parameter hints (IDEA-163484)
[idea/community.git] / plugins / groovy / src / META-INF / plugin.xml
1 <!--
2   ~  Copyright 2000-2009 JetBrains s.r.o.
3   ~  Licensed under the Apache License, Version 2.0 (the "License");
4   ~  you may not use this file except in compliance with the License.
5   ~  You may obtain a copy of the License at
6   ~
7   ~  http://www.apache.org/licenses/LICENSE-2.0
8   ~
9   ~  Unless required by applicable law or agreed to in writing, software
10   ~  distributed under the License is distributed on an "AS IS" BASIS,
11   ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   ~  See the License for the specific language governing permissions and
13   ~  limitations under the License.
14   ~
15   -->
16 <idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
17   <id>org.intellij.groovy</id>
18   <name>Groovy</name>
19   <description>Plugin for Groovy language support, including Groovy++, Grape, Gant and Griffon</description>
20   <version>9.0</version>
21   <vendor>JetBrains</vendor>
22   <depends>com.intellij.properties</depends>
23
24   <depends optional="true" config-file="groovy-copyright.xml">com.intellij.copyright</depends>
25   <depends optional="true" config-file="intellilang-groovy-support.xml">org.intellij.intelliLang</depends>
26   <depends optional="true" config-file="ant.xml">AntSupport</depends>
27   <depends optional="true" config-file="groovy-byte-code-viewer.xml">ByteCodeViewer</depends>
28   <depends optional="true" config-file="duplicates-groovy.xml">com.intellij.modules.ultimate</depends>
29
30   <extensionPoints>
31     <extensionPoint name="methodComparator" interface="org.jetbrains.plugins.groovy.lang.resolve.GrMethodComparator"/>
32     <extensionPoint name="membersContributor" interface="org.jetbrains.plugins.groovy.lang.resolve.NonCodeMembersContributor"/>
33     <extensionPoint name="importContributor" interface="org.jetbrains.plugins.groovy.lang.resolve.GrImportContributor"/>
34     <extensionPoint name="astTransformationSupport" interface="org.jetbrains.plugins.groovy.transformations.AstTransformationSupport"/>
35     <extensionPoint name="renameHelper" interface="org.jetbrains.plugins.groovy.refactoring.rename.GrRenameHelper"/>
36     <extensionPoint name="closureMissingMethodContributor"
37                     interface="org.jetbrains.plugins.groovy.lang.resolve.ClosureMissingMethodContributor"/>
38     <extensionPoint name="variableEnhancer" interface="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrVariableEnhancer"/>
39     <extensionPoint name="referenceTypeEnhancer" interface="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrReferenceTypeEnhancer"/>
40     <extensionPoint name="typeConverter" interface="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrTypeConverter"/>
41     <extensionPoint name="expectedTypesContributor"
42                     interface="org.jetbrains.plugins.groovy.lang.psi.expectedTypes.GroovyExpectedTypesContributor"/>
43
44     <extensionPoint name="positionManagerDelegate"
45                     interface="org.jetbrains.plugins.groovy.extensions.debugger.ScriptPositionManagerHelper"/>
46     <extensionPoint name="scriptTypeDetector" interface="org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector"/>
47
48     <extensionPoint name="namedArgumentProvider" interface="org.jetbrains.plugins.groovy.extensions.GroovyNamedArgumentProvider"/>
49     <extensionPoint name="mapContentProvider" interface="org.jetbrains.plugins.groovy.extensions.GroovyMapContentProvider"/>
50
51     <extensionPoint name="unresolvedHighlightFilter" interface="org.jetbrains.plugins.groovy.extensions.GroovyUnresolvedHighlightFilter"/>
52     <extensionPoint name="unresolvedHighlightFileFilter"
53                     interface="org.jetbrains.plugins.groovy.extensions.GroovyUnresolvedHighlightFileFilter"/>
54     <extensionPoint name="configSlurperSupport" interface="org.jetbrains.plugins.groovy.configSlurper.ConfigSlurperSupport"/>
55
56     <extensionPoint name="callExpressionTypeCalculator"
57                     interface="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrCallExpressionTypeCalculator"/>
58     <extensionPoint name="expressionTypeCalculator"
59                     interface="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrExpressionTypeCalculator"/>
60
61     <extensionPoint name="classDescriptor" beanClass="org.jetbrains.plugins.groovy.extensions.GroovyClassDescriptor"/>
62     <extensionPoint name="methodDescriptor" beanClass="org.jetbrains.plugins.groovy.extensions.GroovyMethodDescriptorExtension"/>
63
64     <!-- Groovy DSL extension points -->
65     <extensionPoint name="psiEnhancerCategory" interface="org.jetbrains.plugins.groovy.dsl.psi.PsiEnhancerCategory"/>
66     <extensionPoint name="gdslTopLevelProvider" interface="org.jetbrains.plugins.groovy.dsl.dsltop.GdslMembersProvider"/>
67
68     <extensionPoint name="groovyFrameworkConfigNotification"
69                     interface="org.jetbrains.plugins.groovy.annotator.GroovyFrameworkConfigNotification"/>
70     <extensionPoint name="groovySourceFolderDetector" interface="org.jetbrains.plugins.groovy.actions.GroovySourceFolderDetector"/>
71
72     <extensionPoint name="mvc.framework" interface="org.jetbrains.plugins.groovy.mvc.MvcFramework"/>
73     <extensionPoint name="mvc.command.executor" interface="org.jetbrains.plugins.groovy.mvc.MvcCommandExecutor"/>
74
75     <extensionPoint name="closureCompleter" interface="org.jetbrains.plugins.groovy.lang.completion.ClosureCompleter"/>
76
77     <extensionPoint name="methodMayBeStaticInspectionFilter"
78                     interface="org.jetbrains.plugins.groovy.codeInspection.declaration.GrMethodMayBeStaticInspectionFilter"/>
79
80     <extensionPoint name="customAnnotationChecker" interface="org.jetbrains.plugins.groovy.annotator.checkers.CustomAnnotationChecker"/>
81
82     <extensionPoint name="convertToJava.customMethodInvocator"
83                     interface="org.jetbrains.plugins.groovy.refactoring.convertToJava.invocators.CustomMethodInvocator"/>
84
85     <extensionPoint name="signatureHintProcessor" interface="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.SignatureHintProcessor"/>
86     <extensionPoint name="mvc.runCommandHandler" interface="org.jetbrains.plugins.groovy.mvc.actions.MvcRunCommandActionHandler"/>
87     <extensionPoint name="gdslScriptProvider" interface="org.jetbrains.plugins.groovy.dsl.GdslScriptProvider"/>
88     <extensionPoint name="expectedPackageNameProvider" interface="org.jetbrains.plugins.groovy.lang.resolve.ExpectedPackageNameProvider"/>
89     <extensionPoint name="delegatesToProvider" interface="org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.GrDelegatesToProvider"/>
90   </extensionPoints>
91
92   <extensions defaultExtensionNs="org.intellij.groovy">
93
94     <groovyFrameworkConfigNotification order="last"
95                                        implementation="org.jetbrains.plugins.groovy.config.DefaultGroovyFrameworkConfigNotification"/>
96
97     <membersContributor implementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicMembersContributor"/>
98     <membersContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.GrCollectionTypeMembersProvider"/>
99     <membersContributor implementation="org.jetbrains.plugins.groovy.spock.SpockMemberContributor"/>
100     <membersContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.MixinMemberContributor"/>
101     <membersContributor implementation="org.jetbrains.plugins.groovy.swingBuilder.SwingBuilderNonCodeMemberContributor"/>
102     <membersContributor implementation="org.jetbrains.plugins.groovy.dgm.DGMMemberContributor"/>
103
104     <membersContributor implementation="org.jetbrains.plugins.groovy.geb.GebSpockTestMemberContributor"/>
105     <membersContributor implementation="org.jetbrains.plugins.groovy.geb.GebPageMemberContributor"/>
106     <membersContributor implementation="org.jetbrains.plugins.groovy.geb.GebModuleMemberContributor"/>
107
108     <membersContributor implementation="org.jetbrains.plugins.groovy.geb.GebJUnitTestMemberContributor"/>
109     <membersContributor implementation="org.jetbrains.plugins.groovy.geb.GebTestNGTestMemberContributor"/>
110     <membersContributor implementation="org.jetbrains.plugins.groovy.geb.GebBrowserMemberContributor"/>
111
112     <membersContributor implementation="org.jetbrains.plugins.groovy.builder.XmlMarkupBuilderNonCodeMemberContributor"/>
113     <membersContributor implementation="org.jetbrains.plugins.groovy.builder.JsonBuilderContributor"/>
114     <membersContributor implementation="org.jetbrains.plugins.groovy.builder.JsonDelegateContributor"/>
115     <membersContributor implementation="org.jetbrains.plugins.groovy.builder.StreamingJsonBuilderContributor"/>
116     <membersContributor implementation="org.jetbrains.plugins.groovy.builder.StreamingJsonBuilderDelegateContributor"/>
117
118     <closureMissingMethodContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.PluginXmlClosureMemberContributor"/>
119
120     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.AutoExternalizeContributor"/>
121     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.transformations.impl.autoClone.AutoCloneTransformationSupport"/>
122     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.ConstructorAnnotationsProcessor"/>
123     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.InheritConstructorContributor"/>
124     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.builder.strategy.DefaultBuilderStrategySupport"/>
125     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.builder.strategy.SimpleBuilderStrategySupport"/>
126     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.builder.strategy.ExternalBuilderStrategySupport"/>
127     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.builder.strategy.InitializerBuilderStrategySupport"/>
128     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.transformations.impl.BindableTransformationSupport"/>
129     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.transformations.impl.VetoableTransformationSupport"/>
130
131     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.LoggingContributor"/>
132     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.transformations.impl.CategoryTransformationSupport"/>
133     <astTransformationSupport implementation="org.jetbrains.plugins.groovy.transformations.impl.BaseScriptTransformationSupport"/>
134     <astTransformationSupport id="defaultSupport"
135                               implementation="org.jetbrains.plugins.groovy.transformations.impl.DefaultTransformationSupport"/>
136     <renameHelper implementation="org.jetbrains.plugins.groovy.transformations.impl.DefaultRenameHelper"/>
137     <astTransformationSupport order="after defaultSupport"
138                               implementation="org.jetbrains.plugins.groovy.transformations.impl.FieldScriptTransformationSupport"/>
139     <astTransformationSupport id="delegateSupport" order="after defaultSupport"
140                               implementation="org.jetbrains.plugins.groovy.transformations.impl.DelegateTransformationSupport"/>
141     <astTransformationSupport id="traitSupport" order="last"
142                               implementation="org.jetbrains.plugins.groovy.transformations.impl.TraitTransformationSupport"/>
143     <renameHelper implementation="org.jetbrains.plugins.groovy.transformations.impl.TraitRenameHelper"/>
144
145     <positionManagerDelegate implementation="org.jetbrains.plugins.groovy.gant.GantPositionManagerHelper"/>
146
147     <methodDescriptor lightMethodKey="SwingBuilder_builder_method"
148                       namedArgsProvider="org.jetbrains.plugins.groovy.swingBuilder.SwingBuilderNamedArgumentProvider"/>
149
150     <mapContentProvider implementation="org.jetbrains.plugins.groovy.configSlurper.ConfigSlurperMapContentProvider"/>
151     <referenceTypeEnhancer implementation="org.jetbrains.plugins.groovy.configSlurper.GroovyMapValueTypeEnhancer"/>
152
153     <unresolvedHighlightFilter implementation="org.jetbrains.plugins.groovy.extensions.GroovyUnresolvedReferenceFilterByFile"/>
154
155     <callExpressionTypeCalculator
156         implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrWithTraitTypeCalculator"/>
157     <callExpressionTypeCalculator
158         implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.DefaultCallExpressionTypeCalculator"
159         order="last"/>
160     <callExpressionTypeCalculator
161         implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrDescriptorReturnTypeCalculator"/>
162     <callExpressionTypeCalculator
163         implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrDGMTypeCalculator"/>
164     <expressionTypeCalculator
165         implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrClosureDelegateTypeCalculator"/>
166
167     <scriptTypeDetector implementation="org.jetbrains.plugins.groovy.gant.GantScriptTypeDetector"/>
168
169     <namedArgumentProvider implementation="org.jetbrains.plugins.groovy.lang.GroovySourceCodeNamedArgumentProvider" order="last"/>
170     <namedArgumentProvider implementation="org.jetbrains.plugins.groovy.lang.GroovyConstructorNamedArgumentProvider"/>
171     <namedArgumentProvider implementation="org.jetbrains.plugins.groovy.lang.GroovyMethodReturnNamedArgumentProvider" order="last"/>
172
173
174     <!-- GroovyDSL extensions -->
175     <gdslTopLevelProvider implementation="org.jetbrains.plugins.groovy.dsl.dsltop.GroovyDslDefaultMembers"/>
176     <gdslTopLevelProvider implementation="org.jetbrains.plugins.groovy.lang.resolve.GdkMethodDslProvider"/>
177     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiClassCategory"/>
178     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiElementCategory"/>
179     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiMethodCategory"/>
180     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiExpressionCategory"/>
181
182     <variableEnhancer implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ClosureParameterEnhancer"/>
183     <variableEnhancer implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ClosureAsAnonymousParameterEnhancer"/>
184     <variableEnhancer implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ClosureParamsEnhancer"/>
185
186     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.FromStringHintProcessor"/>
187     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.SimpleTypeHintProcessor"/>
188     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.MapEntryOrKeyValueHintProcessor"/>
189     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.FromAbstractTypeMethodsHintProcessor"/>
190
191     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.FirstParamHintProcessor"/>
192     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.FirstParamHintProcessor$FirstGeneric"/>
193     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.FirstParamHintProcessor$SecondGeneric"/>
194     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.FirstParamHintProcessor$ThirdGeneric"/>
195     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.FirstParamHintProcessor$Component"/>
196
197     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.SecondParamHintProcessor"/>
198     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.SecondParamHintProcessor$FirstGeneric"/>
199     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.SecondParamHintProcessor$SecondGeneric"/>
200     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.SecondParamHintProcessor$ThirdGeneric"/>
201     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.SecondParamHintProcessor$Component"/>
202
203     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ThirdParamHintProcessor"/>
204     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ThirdParamHintProcessor$FirstGeneric"/>
205     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ThirdParamHintProcessor$SecondGeneric"/>
206     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ThirdParamHintProcessor$ThirdGeneric"/>
207     <signatureHintProcessor implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ThirdParamHintProcessor$Component"/>
208
209
210     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrBooleanTypeConverter"/>
211     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrGenericTypeConverter"/>
212     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrClassConverter"/>
213     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrNullVoidConverter"/>
214
215     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrCharConverter"/>
216     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrNumberConverter"/>
217     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrStringConverter"/>
218
219     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrEnumConverter"/>
220     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrContainerTypeConverter"/>
221     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ClosureToSamConverter"/>
222     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrContainerConverter"/>
223
224     <typeConverter implementation="org.jetbrains.plugins.groovy.gpp.GppTypeConverter"/>
225
226     <expectedTypesContributor implementation="org.jetbrains.plugins.groovy.gpp.GppExpectedTypesContributor"/>
227     <variableEnhancer implementation="org.jetbrains.plugins.groovy.gpp.GppClosureParameterTypeProvider"/>
228
229     <mvc.framework implementation="org.jetbrains.plugins.groovy.griffon.GriffonFramework"/>
230     <groovyFrameworkConfigNotification implementation="org.jetbrains.plugins.groovy.griffon.GriffonConfigureNotification"/>
231     <importContributor implementation="org.jetbrains.plugins.groovy.griffon.GriffonDefaultImportContributor"/>
232
233     <closureCompleter implementation="org.jetbrains.plugins.groovy.lang.completion.GdslClosureCompleter"/>
234     <closureCompleter implementation="org.jetbrains.plugins.groovy.lang.completion.EachWithIndexClosureCompleter"/>
235
236     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.FieldAnnotationChecker"/>
237     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.NewifyAnnotationChecker"/>
238     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.GrabAnnotationChecker"/>
239     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.GrAliasAnnotationChecker"/>
240     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.AnnotationCollectorChecker" order="first"/>
241     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.DelegatesToAnnotationChecker"/>
242     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.griffon.GriffonPropertyListenerAnnotationChecker"/>
243     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.BaseScriptAnnotationChecker"/>
244
245     <convertToJava.customMethodInvocator
246         implementation="org.jetbrains.plugins.groovy.refactoring.convertToJava.invocators.MapGetterSetterInvocator"/>
247     <customAnnotationChecker implementation="org.jetbrains.plugins.groovy.annotator.checkers.TypeCheckedAnnotationChecker"/>
248     <mvc.runCommandHandler implementation="org.jetbrains.plugins.groovy.mvc.actions.DefaultMvcRunCommandActionHandler" order="last"/>
249     <methodComparator implementation="org.jetbrains.plugins.groovy.lang.resolve.GrDefaultMethodComparator" order="last"/>
250     <expectedPackageNameProvider implementation="org.jetbrains.plugins.groovy.lang.resolve.DefaultExpectedPackageNameProvider"
251                                  order="last"/>
252     <importContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.DefaultImportContributor"/>
253     <delegatesToProvider implementation="org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.DefaultDelegatesToProvider" id="default"/>
254   </extensions>
255
256   <extensions defaultExtensionNs="com.intellij.properties">
257     <implicitPropertyUsageProvider implementation="org.jetbrains.plugins.groovy.dgm.DGMImplicitPropertyUsageProvider"/>
258   </extensions>
259
260   <extensions defaultExtensionNs="com.intellij">
261     <additionalTextAttributes scheme="Default" file="colorSchemes/GroovyDefault.xml"/>
262     <additionalTextAttributes scheme="Darcula" file="colorSchemes/GroovyDarcula.xml"/>
263
264     <navbar implementation="org.jetbrains.plugins.groovy.navbar.GrNavBarModelExtension"/>
265
266     <fileTypeDetector implementation="org.jetbrains.plugins.groovy.GroovyHashBangFileTypeDetector"/>
267
268     <declarationRangeHandler key="org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod"
269                              implementationClass="org.jetbrains.plugins.groovy.codeInsight.hint.GrMethodDeclarationRangeHandler"/>
270     <declarationRangeHandler key="org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition"
271                              implementationClass="org.jetbrains.plugins.groovy.codeInsight.hint.GrTypeDefinitionRangeHandler"/>
272     <declarationRangeHandler key="org.jetbrains.plugins.groovy.lang.psi.api.statements.GrClassInitializer"
273                              implementationClass="org.jetbrains.plugins.groovy.codeInsight.hint.GrClassInitializerDeclarationRangeHandler"/>
274
275
276     <psi.clsCustomNavigationPolicy implementation="org.jetbrains.plugins.groovy.codeInsight.GroovyClsCustomNavigationPolicy"/>
277
278     <moduleBuilder builderClass="org.jetbrains.plugins.groovy.config.GroovyAwareModuleBuilder"/>
279
280     <pom.declarationSearcher implementation="org.jetbrains.plugins.groovy.geb.GebContentDeclarationSearcher"/>
281
282     <itemPresentationProvider forClass="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyFileImpl"
283                               implementationClass="org.jetbrains.plugins.groovy.findUsages.GrFileItemPresentationProvider"/>
284
285     <testFramework implementation="org.jetbrains.plugins.groovy.testIntegration.GroovyTestFramework" order="first"/>
286     <testFramework implementation="org.jetbrains.plugins.groovy.spock.SpockTestFramework" order="first"/>
287
288     <testCreator language="Groovy" implementationClass="com.intellij.testIntegration.JavaTestCreator"/>
289     <testGenerator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.testIntegration.GroovyTestGenerator"/>
290     <runLineMarkerContributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.testIntegration.GroovyTestLineMarkerContributor"/>
291     <runLineMarkerContributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.testIntegration.GroovyAppLineMarkerContributor"/>
292     <constructorBodyGenerator language="Groovy"
293                               implementationClass="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.GrConstructorBodyGenerator"/>
294     <editorNotificationProvider implementation="org.jetbrains.plugins.groovy.config.ConfigureGroovyLibraryNotificationProvider"/>
295     <refactoring.introduceParameterMethodUsagesProcessor
296         implementation="org.jetbrains.plugins.groovy.refactoring.introduce.parameter.java2groovy.GroovyIntroduceParameterMethodUsagesProcessor"/>
297     <refactoring.changeSignatureUsageProcessor
298         implementation="org.jetbrains.plugins.groovy.refactoring.changeSignature.GrChangeSignatureUsageProcessor" id="groovyProcessor"
299         order="before javaProcessor"/>
300     <safeDelete.importSearcher implementation="org.jetbrains.plugins.groovy.refactoring.safeDelete.GroovyImportSearcher"/>
301     <refactoring.safeDelete.JavaSafeDeleteDelegate
302         implementationClass="org.jetbrains.plugins.groovy.refactoring.safeDelete.JavaSafeDeleteDelegateForGroovy" language="Groovy"/>
303
304     <encapsulateFields.Helper language="Groovy"
305                               implementationClass="org.jetbrains.plugins.groovy.refactoring.encapsulateFields.GroovyEncapsulateFieldHelper"/>
306
307     <constantExpressionEvaluator language="Groovy"
308                                  implementationClass="org.jetbrains.plugins.groovy.lang.psi.util.GroovyConstantExpressionEvaluator"/>
309     <annotationSupport language="Groovy"
310                        implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.auxiliary.annotation.GroovyAnnotationSupport"/>
311
312     <expressionConverter language="Groovy"
313                          implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyExpressionConverter"/>
314
315     <codeInsight.createFieldFromUsageHelper language="Groovy"
316                                             implementationClass="org.jetbrains.plugins.groovy.annotator.intentions.GroovyCreateFieldFromUsageHelper"/>
317     <codeInsight.typeInfo language="Groovy" implementationClass="org.jetbrains.plugins.groovy.codeInsight.hint.GroovyExpressionTypeProvider"/>
318     <codeInsight.parameterNameHints
319         language="Groovy" implementationClass="org.jetbrains.plugins.groovy.codeInsight.hint.GroovyInlayParameterHintsProvider"
320     />
321
322     <fileTypeFactory implementation="org.jetbrains.plugins.groovy.GroovyFileTypeLoader"/>
323     <fileTypeFactory implementation="org.jetbrains.plugins.groovy.dgm.DGMFileTypeFactory"/>
324
325     <projectConfigurable groupId="build.tools" groupWeight="100" instance="org.jetbrains.plugins.groovy.gant.GantConfigurable"
326                          id="reference.settingsdialog.project.gant"
327                          displayName="Gant"/>
328
329     <library.presentationProvider implementation="org.jetbrains.plugins.groovy.config.GroovyLibraryPresentationProvider"/>
330     <library.presentationProvider implementation="org.jetbrains.plugins.groovy.gant.GantLibraryPresentationProvider" order="last"/>
331
332     <projectService serviceInterface="org.jetbrains.plugins.groovy.gant.GantSettings"
333                     serviceImplementation="org.jetbrains.plugins.groovy.gant.GantSettings"/>
334
335     <spellchecker.support language="Groovy"
336                           implementationClass="org.jetbrains.plugins.groovy.codeInspection.spellchecker.GroovySpellcheckingStrategy"/>
337     <lang.inspectionSuppressor language="Groovy"
338                                implementationClass="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionSuppressor"/>
339
340     <colorSettingsPage implementation="org.jetbrains.plugins.groovy.highlighter.GroovyColorsAndFontsPage"/>
341     <framework.type implementation="org.jetbrains.plugins.groovy.config.GroovyFrameworkType"/>
342     <renameHandler implementation="org.jetbrains.plugins.groovy.refactoring.rename.PropertyRenameHandler"/>
343     <renamePsiElementProcessor id="groovyFieldRenameProcessor"
344                                implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameGrFieldProcessor"
345                                order="first"/>
346     <renamePsiElementProcessor id="groovyPropertyRenameProcessor"
347                                implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameGroovyPropertyProcessor"
348                                order="first"/>
349     <renamePsiElementProcessor id="groovyLightElementRenamer"
350                                implementation="org.jetbrains.plugins.groovy.refactoring.rename.GrLightElementRenamer"
351                                order="first, after groovyPropertyRenameProcessor"/>
352     <renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedClassProcessor"
353                                order="first"/>
354     <renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedMethodProcessor"
355                                order="first"/>
356     <renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameGroovyScriptProcessor"/>
357     <renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.transformations.impl.synch.SynchronizedRenameFieldProcessor"
358                                order="first, before groovyFieldRenameProcessor"/>
359
360     <rename.inplace.resolveSnapshotProvider language="Groovy"
361                                             implementationClass="org.jetbrains.plugins.groovy.refactoring.rename.inplace.GroovyResolveSnapshotProvider"/>
362
363     <renameHandler implementation="org.jetbrains.plugins.groovy.refactoring.rename.inplace.GrVariableInplaceRenameHandler"/>
364     <renameHandler implementation="org.jetbrains.plugins.groovy.refactoring.rename.inplace.GrMethodInplaceRenameHandler"/>
365
366     <nameSuggestionProvider implementation="org.jetbrains.plugins.groovy.refactoring.GroovyNameSuggestionProvider"/>
367
368     <statementUpDownMover implementation="org.jetbrains.plugins.groovy.editor.actions.GroovyStatementMover"/>
369
370     <joinLinesHandler implementation="org.jetbrains.plugins.groovy.editor.actions.joinLines.GrVariableJoinLinesHandler"/>
371     <joinLinesHandler implementation="org.jetbrains.plugins.groovy.editor.actions.joinLines.GrJoinBlockStatementHandler"/>
372     <joinLinesHandler implementation="org.jetbrains.plugins.groovy.editor.actions.joinLines.GrJoinControlStatementHandler"/>
373     <joinLinesHandler implementation="org.jetbrains.plugins.groovy.editor.actions.joinLines.GrJoinStatementsHandler"/>
374
375     <applicationService serviceInterface="org.jetbrains.plugins.groovy.settings.GroovyApplicationSettings"
376                         serviceImplementation="org.jetbrains.plugins.groovy.settings.GroovyApplicationSettings"/>
377     <applicationService serviceInterface="org.jetbrains.plugins.groovy.dsl.DslErrorReporter"
378                         serviceImplementation="org.jetbrains.plugins.groovy.dsl.DslErrorReporterImpl"/>
379
380     <!-- Groovy language -->
381     <syntaxHighlighter key="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovySyntaxHighlighter"/>
382
383     <annotator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.annotator.GrAnnotatorImpl"/>
384     <annotator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.dsl.GroovyDslAnnotator"/>
385     <annotator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.transformations.impl.synch.SynchronizedTransformationAnnotator"/>
386
387     <lang.psiStructureViewFactory language="Groovy"
388                                   implementationClass="org.jetbrains.plugins.groovy.structure.GroovyStructureViewFactory"/>
389     <lang.parserDefinition language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.parser.GroovyParserDefinition"/>
390     <lang.commenter language="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovyCommenter"/>
391     <lang.foldingBuilder language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.folding.GroovyFoldingBuilder"/>
392     <lang.formatter language="Groovy" implementationClass="org.jetbrains.plugins.groovy.formatter.GroovyFormattingModelBuilder"/>
393     <lang.whiteSpaceFormattingStrategy language="Groovy"
394                                        implementationClass="org.jetbrains.plugins.groovy.formatter.GroovyWhiteSpaceFormattingStrategy"/>
395     <postFormatProcessor implementation="org.jetbrains.plugins.groovy.formatter.GroovyBracePostFormatProcessor"/>
396
397     <enterHandlerDelegate implementation="org.jetbrains.plugins.groovy.editor.actions.GroovyEnterHandler"
398                           order="before EnterBetweenBracesHandler"/>
399     <typedHandler implementation="org.jetbrains.plugins.groovy.editor.actions.GStringTypedActionHandler"/>
400     <backspaceHandlerDelegate implementation="org.jetbrains.plugins.groovy.editor.actions.GStringBackspaceHandlerDelegate"/>
401
402     <typedHandler implementation="org.jetbrains.plugins.groovy.editor.actions.GroovyTypedHandler"/>
403     <backspaceHandlerDelegate implementation="org.jetbrains.plugins.groovy.editor.actions.GroovyBackspaceHandler"/>
404
405     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Generic"/>
406     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Expression"/>
407     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Statement"/>
408     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Declaration"/>
409
410     <defaultLiveTemplatesProvider implementation="org.jetbrains.plugins.groovy.template.GroovyTemplatesProvider"/>
411
412     <liveTemplateOptionalProcessor implementation="org.jetbrains.plugins.groovy.template.GroovyShortenFQNamesProcessor"/>
413     <variableTypeCalculator implementation="org.jetbrains.plugins.groovy.template.GroovyVariableTypeCalculator"/>
414
415     <gotoSymbolContributor implementation="org.jetbrains.plugins.groovy.gotoclass.GroovyGoToSymbolContributor"/>
416     <lang.refactoringSupport language="Groovy"
417                              implementationClass="org.jetbrains.plugins.groovy.refactoring.GroovyRefactoringSupportProvider"/>
418     <lang.surroundDescriptor language="Groovy"
419                              implementationClass="org.jetbrains.plugins.groovy.lang.surroundWith.GroovySurroundDescriptor"/>
420     <lang.findUsagesProvider language="Groovy" implementationClass="org.jetbrains.plugins.groovy.findUsages.GroovyFindUsagesProvider"/>
421     <importFilteringRule implementation="org.jetbrains.plugins.groovy.findUsages.GrImportFilteringRule"/>
422
423     <readWriteAccessDetector implementation="org.jetbrains.plugins.groovy.findUsages.GroovyReadWriteAccessDetector"
424                              id="defaultGroovy" order="before java"/>
425     <findUsagesHandlerFactory implementation="org.jetbrains.plugins.groovy.findUsages.GroovyFieldFindUsagesHandlerFactory"/>
426     <highlightUsagesHandlerFactory implementation="org.jetbrains.plugins.groovy.findUsages.GrHighlightHandlerFactory"/>
427     <lang.braceMatcher language="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovyBraceMatcher"/>
428     <lang.importOptimizer language="Groovy" implementationClass="org.jetbrains.plugins.groovy.editor.GroovyImportOptimizer"/>
429     <lang.documentationProvider language="Groovy"
430                                 implementationClass="org.jetbrains.plugins.groovy.lang.documentation.GroovyDocumentationProvider"/>
431     <lang.smartEnterProcessor language="Groovy"
432                               implementationClass="org.jetbrains.plugins.groovy.lang.completion.smartEnter.GroovySmartEnterProcessor"/>
433     <codeInsight.overrideMethod language="Groovy"
434                                 implementationClass="org.jetbrains.plugins.groovy.overrideImplement.GroovyOverrideMethodsHandler"/>
435     <codeInsight.implementMethod language="Groovy"
436                                  implementationClass="org.jetbrains.plugins.groovy.overrideImplement.GroovyImplementMethodsHandler"/>
437
438     <methodImplementor implementation="org.jetbrains.plugins.groovy.overrideImplement.GroovyMethodImplementor"/>
439     <methodImplementor implementation="org.jetbrains.plugins.groovy.overrideImplement.TraitMethodImplementor"/>
440     <codeInsight.parameterInfo language="Groovy"
441                                implementationClass="org.jetbrains.plugins.groovy.lang.parameterInfo.GroovyParameterInfoHandler"/>
442     <codeInsight.parameterInfo language="Groovy"
443                                implementationClass="org.jetbrains.plugins.groovy.lang.parameterInfo.GroovyAnnotationAttributeInfoHandler"/>
444     <codeInsight.parameterInfo language="Groovy"
445                                implementationClass="org.jetbrains.plugins.groovy.lang.parameterInfo.GroovyTypeParameterInfoHandler"/>
446     <refactoring.inlineHandler language="Groovy" implementationClass="org.jetbrains.plugins.groovy.refactoring.inline.GroovyInlineHandler"/>
447     <inlineActionHandler implementation="org.jetbrains.plugins.groovy.refactoring.inline.GroovyInlineLocalHandler"/>
448
449     <refactoring.moveClassHandler implementation="org.jetbrains.plugins.groovy.refactoring.move.MoveGroovyClassHandler"/>
450     <refactoring.moveClassToInnerHandler implementation="org.jetbrains.plugins.groovy.refactoring.move.GroovyMoveClassToInnerHandler"/>
451     <moveFileHandler implementation="org.jetbrains.plugins.groovy.refactoring.move.MoveGroovyFileHandler"/>
452     <refactoring.moveMemberHandler language="Groovy"
453                                    implementationClass="org.jetbrains.plugins.groovy.refactoring.move.MoveGroovyMemberHandler"/>
454
455     <refactoring.helper implementation="org.jetbrains.plugins.groovy.refactoring.GroovyImportOptimizerRefactoringHelper"/>
456     <codeInsight.lineMarkerProvider language="Groovy"
457                                     implementationClass="org.jetbrains.plugins.groovy.codeInsight.GroovyLineMarkerProvider"/>
458     <codeInsight.lineMarkerProvider language="Groovy"
459                                     implementationClass="com.intellij.codeInsight.ExternalAnnotationsLineMarkerProvider"/>
460     <codeInsight.gotoSuper language="Groovy"
461                            implementationClass="org.jetbrains.plugins.groovy.codeInsight.navigation.actions.GroovyGotoSuperHandler"/>
462     <lookup.charFilter implementation="org.jetbrains.plugins.groovy.lang.completion.GroovyReferenceCharFilter"/>
463     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovyNoVariantsDelegator"
464                             id="groovyBasic2ClassName" order="first, after liveTemplates"/>
465     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovyCompletionContributor"
466                             id="groovyBasic" order="before javaClassName"/>
467     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.shell.GroovyShellCompletionContributor"/>
468
469     <completion.contributor language="Groovy"
470                             implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovySmartCompletionContributor"/>
471     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GrMethodMergingContributor"
472                             id="grMethodMerger" order="before methodMerger"/>
473
474     <completion.contributor language="Properties" implementationClass="org.jetbrains.plugins.groovy.dgm.DGMCompletionContributor"/>
475
476     <completion.confidence language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovyCompletionConfidence"
477                            id="groovyAdvanced" order="after groovyNameIdentifier"/>
478     <completion.confidence language="Groovy" implementationClass="com.intellij.codeInsight.completion.SkipAutopopupInComments"
479                            id="groovyComments"/>
480     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.geb.GebPageFieldNameCompletionContributor"/>
481
482     <cantBeStatic implementation="org.jetbrains.plugins.groovy.codeInspection.declaration.GrCategoryMethodsCantBeStaticExtension"/>
483
484     <psi.referenceContributor language="Properties" implementation="org.jetbrains.plugins.groovy.dgm.DGMReferenceContributor"/>
485
486     <psi.referenceContributor language="Groovy"
487                               implementation="org.jetbrains.plugins.groovy.lang.resolve.GroovyMethodArgumentReferenceContributor"/>
488
489     <weigher key="completion" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrWithWeigher"
490              id="groovyWithWeigher" order="after prefix"/>
491     <weigher key="completion" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrKindWeigher"
492              id="groovyKindWeigher" order="after groovyWithWeigher, before explicitProximity"/>
493
494     <weigher key="proximity" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrReferenceListWeigher"
495              id="groovyReferenceListWeigher" order="before openedInEditor"/>
496
497     <debuggerClassFilterProvider implementation="org.jetbrains.plugins.groovy.debugger.GroovyDebuggerClassFilterProvider"/>
498
499     <useScopeEnlarger implementation="org.jetbrains.plugins.groovy.lang.psi.impl.search.GrPrivateFieldScopeEnlarger"/>
500
501     <debuggerEditorTextProvider language="Groovy" implementationClass="org.jetbrains.plugins.groovy.debugger.GroovyEditorTextProvider"/>
502
503     <xdebugger.settings implementation="org.jetbrains.plugins.groovy.debugger.GroovyDebuggerSettings"/>
504     <langCodeStyleSettingsProvider implementation="org.jetbrains.plugins.groovy.codeStyle.GroovyLanguageCodeStyleSettingsProvider"/>
505     <codeStyleSettingsProvider implementation="org.jetbrains.plugins.groovy.codeStyle.GroovyCodeStyleSettingsProvider"/>
506
507     <typeHierarchyProvider language="Groovy" implementationClass="org.jetbrains.plugins.groovy.hierarchy.type.GroovyTypeHierarchyProvider"/>
508     <callHierarchyProvider language="Groovy" implementationClass="org.jetbrains.plugins.groovy.hierarchy.call.GrCallHierarchyProvider"/>
509
510     <lang.unwrapDescriptor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.unwrap.GroovyUnwrapDescriptor"/>
511
512     <lang.elementManipulator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral"
513                              implementationClass="org.jetbrains.plugins.groovy.lang.resolve.GroovyStringLiteralManipulator"/>
514     <lang.elementManipulator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgumentLabel"
515                              implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.statements.arguments.GrArgumentLabelManipulator"/>
516     <lang.elementManipulator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrStringContent"
517                              implementationClass="org.jetbrains.plugins.groovy.lang.resolve.GroovyStringLiteralManipulator"/>
518
519
520     <directClassInheritorsSearch implementation="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyDirectInheritorsSearcher"/>
521
522     <pom.declarationSearcher implementation="org.jetbrains.plugins.groovy.spock.SpockPomDeclarationSearcher"/>
523
524     <typeDeclarationProvider implementation="org.jetbrains.plugins.groovy.editor.GroovyTypeDeclarationProvider" order="first"/>
525
526     <!--Run/debug-->
527     <configurationType implementation="org.jetbrains.plugins.groovy.runner.GroovyScriptRunConfigurationType"/>
528     <configurationProducer implementation="org.jetbrains.plugins.groovy.runner.GroovyScriptRunConfigurationProducer"/>
529
530     <quoteHandler fileType="Groovy" className="org.jetbrains.plugins.groovy.editor.GroovyQuoteHandler"/>
531
532     <compileServer.plugin classpath="groovy-jps-plugin.jar;groovy-rt-constants.jar"/>
533     <compiler.buildTargetScopeProvider implementation="org.jetbrains.plugins.groovy.compiler.GroovyTargetScopeProvider"/>
534
535     <indexPatternBuilder implementation="org.jetbrains.plugins.groovy.util.GroovyIndexPatternBuilder"/>
536     <todoIndexer filetype="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovyTodoIndexer"/>
537
538     <basicWordSelectionFilter implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyWordSelectionFilter"/>
539     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyLiteralSelectioner"/>
540     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyMembersWithDocSelectioner"/>
541     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyBlockStatementsSelectioner"/>
542     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyTypeDefinitionBodySelectioner"/>
543     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyTypeCastSelectioner"/>
544     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyDocParamsSelectioner"/>
545     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyArgListSelectioner"/>
546     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyGStringSelectioner"
547                                 order="before wordSelectioner"/>
548     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyParameterListSelectioner"/>
549     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyElseSelectioner"/>
550     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyWordSelectionHandler"/>
551     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyStatementSelectioner"/>
552
553
554     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.AccessorMethodReferencesSearcher"/>
555     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.MethodLateBoundReferencesSearcher"/>
556     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GroovyConstructorUsagesSearcher"/>
557     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GroovyReflectedMethodReferenceSearcher"/>
558     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GrLiteralMethodSearcher"/>
559     <annotatedElementsSearch implementation="org.jetbrains.plugins.groovy.findUsages.AnnotatedMembersSearcher"/>
560     <superMethodsSearch implementation="org.jetbrains.plugins.groovy.findUsages.GDKSuperMethodSearcher"/>
561     <definitionsScopedSearch implementation="org.jetbrains.plugins.groovy.findUsages.GroovyImplementationSearch"/>
562
563     <targetElementEvaluator language="Groovy"
564                             implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyTargetElementEvaluator"/>
565
566     <fileTemplateGroup implementation="org.jetbrains.plugins.groovy.actions.GroovyTemplatesFactory"/>
567
568     <projectConfigurable instance="org.jetbrains.plugins.groovy.compiler.GroovyCompilerConfigurable" id="Groovy compiler"
569                          displayName="Groovy Compiler" parentId="project.propCompiler"/>
570     <java.compiler implementation="org.jetbrains.plugins.groovy.compiler.GreclipseIdeaCompiler"/>
571     <projectService serviceImplementation="org.jetbrains.plugins.groovy.compiler.GreclipseIdeaCompilerSettings"/>
572
573     <vetoSPICondition implementation="org.jetbrains.plugins.groovy.dgm.GroovyExtensionProvider$GroovyExtensionVetoSPI"/>
574
575     <stubElementTypeHolder class="org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes"/>
576     <!--Stubs index-->
577     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrFullClassNameIndex"/>
578     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrFullScriptNameIndex"/>
579     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrFieldNameIndex"/>
580     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrMethodNameIndex"/>
581     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrAnnotationMethodNameIndex"/>
582     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrAnnotatedMemberIndex"/>
583     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrScriptClassNameIndex"/>
584     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrDirectInheritorsIndex"/>
585     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrAnonymousClassIndex"/>
586     
587     <hierarchy.indexer implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.hierarchy.GrStubIndexer"/>
588
589     <referencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.ConstructorReferencesSearcher"/>
590     <referencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GrAliasedImportedElementSearcher"/>
591     <referencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.AccessorReferencesSearcher"/>
592     <referencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GroovyTraitFieldSearcher"/>
593
594     <antCustomCompiler implementation="org.jetbrains.plugins.groovy.ant.GroovyAntCustomCompilerProvider"/>
595
596     <project.converterProvider implementation="org.jetbrains.plugins.groovy.config.GroovyModuleConverterProvider"/>
597     <project.converterProvider implementation="org.jetbrains.plugins.groovy.config.GroovyRunConfigurationConverterProvider"/>
598
599     <fileIconProvider implementation="org.jetbrains.plugins.groovy.GroovyFileIconProvider"/>
600
601     <projectService serviceInterface="org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory"
602                     serviceImplementation="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiElementFactoryImpl"/>
603     <projectService serviceInterface="org.jetbrains.plugins.groovy.compiler.GroovyCompilerConfiguration"
604                     serviceImplementation="org.jetbrains.plugins.groovy.compiler.GroovyCompilerConfiguration"/>
605
606     <psi.referenceContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.providers.GroovyReferenceContributor"/>
607     <psi.referenceContributor implementation="org.jetbrains.plugins.groovy.transformations.impl.synch.SynchronizedReferenceContributor"/>
608
609     <resolveScopeProvider implementation="org.jetbrains.plugins.groovy.lang.resolve.GroovyResolveScopeProvider"/>
610
611     <java.elementFinder implementation="org.jetbrains.plugins.groovy.lang.psi.impl.javaView.GroovyClassFinder"/>
612     <java.elementFinder implementation="org.jetbrains.plugins.groovy.lang.psi.impl.javaView.GroovyLightInnerClassFinder"/>
613     <java.elementFinder implementation="org.jetbrains.plugins.groovy.gant.GantClassFinder"/>
614     <java.shortNamesCache implementation="org.jetbrains.plugins.groovy.lang.stubs.GroovyShortNamesCache"/>
615
616     <projectService
617         serviceImplementation="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager"/>
618     <projectService serviceInterface="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyCodeStyleManager"
619                     serviceImplementation="org.jetbrains.plugins.groovy.codeStyle.GroovyCodeStyleManagerImpl"/>
620     <projectService serviceInterface="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyCodeStyleSettingsFacade"
621                     serviceImplementation="org.jetbrains.plugins.groovy.codeStyle.GroovyCodeStyleSettingsFacadeImpl"/>
622
623     <projectService
624         serviceImplementation="org.jetbrains.plugins.groovy.dgm.GroovyExtensionProvider"/>
625
626     <problemFileHighlightFilter implementation="org.jetbrains.plugins.groovy.GroovyProblemFileHighlightFilter"/>
627
628     <renameInputValidator implementation="org.jetbrains.plugins.groovy.GroovyRenameInputValidator"/>
629     <lang.namesValidator implementationClass="org.jetbrains.plugins.groovy.lang.GroovyNamesValidator" language="Groovy"/>
630
631     <fileBasedIndex implementation="org.jetbrains.plugins.groovy.dsl.GroovyDslFileIndex"/>
632     <fileBasedIndex implementation="org.jetbrains.plugins.groovy.lang.resolve.GroovyTraitFieldsFileIndex"/>
633     <fileBasedIndex implementation="org.jetbrains.plugins.groovy.lang.resolve.GroovyTraitMethodsFileIndex"/>
634
635     <patterns.patternClass className="org.jetbrains.plugins.groovy.lang.psi.patterns.GroovyPatterns" alias="groovy"/>
636
637     <stacktrace.fold substring="at org.codehaus.groovy."/>
638     <stacktrace.fold substring="at groovy."/>
639     <stacktrace.fold substring="at org.codehaus.groovy.runtime.DefaultGroovyMethods." negate="true"/>
640     <stacktrace.fold substring="at org.codehaus.groovy.vmplugin.v5.PluginDefaultGroovyMethods." negate="true"/>
641     <stacktrace.fold substring="at org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport." negate="true"/>
642
643     <projectStructureDetector implementation="org.jetbrains.plugins.groovy.GroovySourceRootDetector" id="groovyDetector"/>
644
645     <generation.topLevelFactory language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyFactoryProvider"/>
646
647     <postStartupActivity implementation="org.jetbrains.plugins.groovy.mvc.MvcProjectWithoutLibraryNotificator"/>
648
649     <editorNotificationProvider implementation="org.jetbrains.plugins.groovy.compiler.GroovyStubNotificationProvider"/>
650
651     <treeCopyHandler implementation="org.jetbrains.plugins.groovy.lang.GroovyChangeUtilSupport"/>
652     <treeGenerator implementation="org.jetbrains.plugins.groovy.lang.psi.impl.source.impl.GroovyTreeGenerator" order="first"/>
653
654     <copyPastePreProcessor implementation="org.jetbrains.plugins.groovy.editor.GroovyLiteralCopyPasteProcessor"/>
655     <copyPastePostProcessor implementation="org.jetbrains.plugins.groovy.editor.GroovyReferenceCopyPasteProcessor"/>
656
657     <regExpLanguageHost forClass="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.literals.GrLiteralImpl"
658                         implementationClass="org.jetbrains.plugins.groovy.regexp.GroovyRegExpHost"/>
659
660     <localInspection shortName="GroovyUnusedDeclaration" displayName="Unused declaration"
661                      groupPath="Groovy"
662                      groupName="Declaration redundancy" enabledByDefault="true" level="WARNING"
663                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.GroovyUnusedDeclarationInspection" unfair="true"/>
664
665     <localInspection language="Groovy" groupPath="Groovy" shortName="SecondUnsafeCall"
666                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
667                      key="second.unsafe.call" groupName="Probable bugs" enabledByDefault="true" level="WARNING"
668                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.secondUnsafeCall.SecondUnsafeCallInspection"/>
669     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnusedAssignment"
670                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
671                      key="unused.assignment" groupKey="groovy.dfa.issues" enabledByDefault="true" level="WARNING"
672                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.unusedDef.UnusedDefInspection"/>
673     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnusedIncOrDec"
674                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
675                      key="unused.inc.dec" groupKey="groovy.dfa.issues" enabledByDefault="true" level="WARNING"
676                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GrUnusedIncDecInspection"/>
677     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyVariableNotAssigned"
678                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
679                      key="unassigned.access" groupKey="groovy.dfa.issues" enabledByDefault="true" level="WARNING"
680                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.unassignedVariable.UnassignedVariableAccessInspection"/>
681     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMissingReturnStatement"
682                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
683                      key="no.return.display.name" groupKey="groovy.dfa.issues" enabledByDefault="true" level="WARNING"
684                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.noReturnMethod.MissingReturnInspection"/>
685     <localInspection language="Groovy" groupPath="Groovy" shortName="TypeCustomizer"
686                      displayName="Type customizer inspection"
687                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
688                      groupKey="other" enabledByDefault="true" level="WARNING"
689                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.resources.TypeCustomizerInspection"/>
690
691     <localInspection language="Groovy"
692                      groupPath="Groovy"
693                      shortName="GroovyAssignabilityCheck"
694                      displayName="Incompatible type assignments"
695                      groupName="Assignment issues"
696                      enabledByDefault="true"
697                      level="WARNING"
698                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignabilityCheckInspection"/>
699
700     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyResultOfAssignmentUsed" displayName="Result of assignment used"
701                      groupName="Assignment issues"
702                      enabledByDefault="false" level="WARNING"
703                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyResultOfAssignmentUsedInspection"/>
704     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAssignmentCanBeOperatorAssignment"
705                      displayName="Assignment replaceable with operator assignment"
706                      groupName="Assignment issues" enabledByDefault="false" level="WARNING"
707                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignmentCanBeOperatorAssignmentInspection"/>
708     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAssignmentToForLoopParameter"
709                      displayName="Assignment to for-loop parameter"
710                      groupName="Assignment issues" enabledByDefault="false" level="WARNING"
711                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignmentToForLoopParameterInspection"/>
712     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAssignmentToMethodParameter"
713                      displayName="Assignment to method parameter"
714                      groupName="Assignment issues" enabledByDefault="false" level="WARNING"
715                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignmentToMethodParameterInspection"/>
716     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedAssignment" displayName="Nested assignment"
717                      groupName="Assignment issues"
718                      enabledByDefault="false" level="WARNING"
719                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyNestedAssignmentInspection"/>
720     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySillyAssignment" displayName="Silly assignment"
721                      groupName="Assignment issues" enabledByDefault="true"
722                      level="WARNING"
723                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovySillyAssignmentInspection"/>
724     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUncheckedAssignmentOfMemberOfRawType"
725                      displayName="Unchecked assignment from members of raw type"
726                      groupName="Assignment issues" enabledByDefault="true" level="WARNING"
727                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyUncheckedAssignmentOfMemberOfRawTypeInspection"/>
728     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyContinueOrBreakFromFinallyBlock"
729                      displayName="'continue' or 'break' inside 'finally' block"
730                      groupName="Error handling" enabledByDefault="false" level="WARNING"
731                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyContinueOrBreakFromFinallyBlockInspection"/>
732     <localInspection language="Groovy" groupPath="Groovy" shortName="GrMethodMayBeStatic"
733                      displayName="Method may be static"
734                      groupName="Declaration" enabledByDefault="true" level="WARNING"
735                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.declaration.GrMethodMayBeStaticInspection"/>
736     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyReturnFromFinallyBlock"
737                      displayName="'return' inside 'finally' block" groupName="Error handling"
738                      enabledByDefault="false" level="WARNING"
739                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyReturnFromFinallyBlockInspection"/>
740     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyThrowFromFinallyBlock"
741                      displayName="'throw' inside 'finally' block" groupName="Error handling"
742                      enabledByDefault="false" level="WARNING"
743                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyThrowFromFinallyBlockInspection"/>
744     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyCatchBlock" displayName="Empty 'catch' block"
745                      groupName="Error handling" enabledByDefault="false"
746                      level="WARNING"
747                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyEmptyCatchBlockInspection"/>
748     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyFinallyBlock" displayName="Empty 'finally' block"
749                      groupName="Error handling"
750                      enabledByDefault="false" level="WARNING"
751                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyEmptyFinallyBlockInspection"/>
752     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyTryBlock" displayName="Empty 'try' block"
753                      groupName="Error handling" enabledByDefault="false"
754                      level="WARNING"
755                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyEmptyTryBlockInspection"/>
756     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnusedCatchParameter" displayName="Unused catch parameter"
757                      groupName="Error handling"
758                      enabledByDefault="true" level="WARNING"
759                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyUnusedCatchParameterInspection"/>
760     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyBreak" displayName="Break statement" groupName="Control Flow"
761                      enabledByDefault="false" level="WARNING"
762                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyBreakInspection"/>
763     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyContinue" displayName="Continue statement"
764                      groupName="Control Flow" enabledByDefault="false"
765                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyContinueInspection"/>
766     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnreachableStatement" displayName="Unreachable Statement"
767                      groupName="Validity issues"
768                      enabledByDefault="true" level="WARNING"
769                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.validity.GroovyUnreachableStatementInspection"/>
770     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyLoopStatementThatDoesntLoop"
771                      displayName="Loop statement that doesn't loop" groupName="Control Flow"
772                      enabledByDefault="false" level="WARNING"
773                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyLoopStatementThatDoesntLoopInspection"/>
774     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditionalWithIdenticalBranches"
775                      displayName="Conditional expression with identical branches"
776                      groupName="Control Flow" enabledByDefault="true" level="WARNING"
777                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConditionalWithIdenticalBranchesInspection"/>
778     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditionalCanBeElvis"
779                      displayName="Conditional expression can be elvis" groupName="Control Flow"
780                      enabledByDefault="false" level="WARNING"
781                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConditionalCanBeElvisInspection"/>
782     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditionalCanBeConditionalCall"
783                      displayName="Conditional expression can be conditional call"
784                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
785                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConditionalCanBeConditionalCallInspection"/>
786     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyIfStatementWithIdenticalBranches"
787                      displayName="If statement with identical branches"
788                      groupName="Control Flow" enabledByDefault="true" level="WARNING"
789                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyIfStatementWithIdenticalBranchesInspection"/>
790     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyIfStatementWithTooManyBranches"
791                      displayName="If statement with too many branches"
792                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
793                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyIfStatementWithTooManyBranchesInspection"/>
794     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyFallthrough" displayName="Fallthrough in switch statement"
795                      groupName="Control Flow"
796                      enabledByDefault="true" level="WARNING"
797                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyFallthroughInspection"/>
798     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnnecessaryContinue"
799                      displayName="Unnecessary 'continue' statement" groupName="Control Flow"
800                      enabledByDefault="true" level="WARNING"
801                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyUnnecessaryContinueInspection"/>
802     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnnecessaryReturn" displayName="Unnecessary 'return' statement"
803                      groupName="Control Flow"
804                      enabledByDefault="true" level="WARNING"
805                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyUnnecessaryReturnInspection"/>
806     <localInspection language="Groovy" groupPath="Groovy" shortName="GrFinalVariableAccess" displayName="Final variable access"
807                      groupName="Control Flow"
808                      enabledByDefault="true" level="WARNING"
809                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.finalVar.GrFinalVariableAccessInspection"/>
810     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySwitchStatementWithNoDefault"
811                      displayName="Switch statement with no default case"
812                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
813                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovySwitchStatementWithNoDefaultInspection"/>
814     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyReturnFromClosureCanBeImplicit"
815                      displayName="'return' statement can be implicit"
816                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
817                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyReturnFromClosureCanBeImplicitInspection"/>
818     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyTrivialConditional"
819                      displayName="Redundant conditional expression" groupName="Control Flow"
820                      enabledByDefault="true" level="WARNING"
821                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyTrivialConditionalInspection"/>
822     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstantConditional"
823                      displayName="Constant conditional expression" groupName="Control Flow"
824                      enabledByDefault="true" level="WARNING"
825                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConstantConditionalInspection"/>
826     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstantIfStatement" displayName="Constant if statement"
827                      groupName="Control Flow"
828                      enabledByDefault="true" level="WARNING"
829                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConstantIfStatementInspection"/>
830     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyTrivialIf" displayName="Redundant 'if' statement"
831                      groupName="Control Flow" enabledByDefault="true"
832                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyTrivialIfInspection"/>
833     <localInspection language="Groovy" groupPath="Groovy" shortName="JavaStylePropertiesInvocation"
834                      displayName="Java-style property access"
835                      groupName="Style" enabledByDefault="false" level="WARNING"
836                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.style.JavaStylePropertiesInvocationInspection"/>
837     <localInspection language="Groovy" groupPath="Groovy" groupName="Style"
838                      displayName="Unnecessary 'def'" cleanupTool="true" enabledByDefault="true"
839                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.style.GrUnnecessaryDefModifierInspection"/>
840     <localInspection language="Groovy" groupPath="Groovy" groupName="Style"
841                      displayName="Unnecessary 'public'" cleanupTool="true" enabledByDefault="true"
842                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.style.GrUnnecessaryPublicModifierInspection"/>
843     <localInspection language="Groovy" groupPath="Groovy" groupName="Style"
844                      displayName="Unnecessary semicolon" cleanupTool="true" enabledByDefault="true"
845                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.style.GrUnnecessarySemicolonInspection"/>
846     <localInspection language="Groovy" groupPath="Groovy" shortName="ChangeToOperator"
847                      displayName="Change to operator"
848                      groupName="Style" enabledByDefault="true" level="WEAK WARNING"
849                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.changeToOperator.ChangeToOperatorInspection"/>
850     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAccessToStaticFieldLockedOnInstance"
851                      displayName="Access to static field locked on instance data"
852                      groupName="Threading issues" enabledByDefault="true" level="WARNING"
853                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyAccessToStaticFieldLockedOnInstanceInspection"/>
854     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDoubleCheckedLocking" displayName="Double-checked locking"
855                      groupName="Threading issues"
856                      enabledByDefault="false" level="WARNING"
857                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyDoubleCheckedLockingInspection"/>
858     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnconditionalWait" displayName="Unconditional 'wait' call"
859                      groupName="Threading issues"
860                      enabledByDefault="false" level="WARNING"
861                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyUnconditionalWaitInspection"/>
862     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyPublicFieldAccessedInSynchronizedContext"
863                      displayName="Non-private field accessed in synchronized context" groupName="Threading issues" enabledByDefault="false"
864                      level="WARNING"
865                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyPublicFieldAccessedInSynchronizedContextInspection"/>
866     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyBusyWait" displayName="Busy wait" groupName="Threading issues"
867                      enabledByDefault="false"
868                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyBusyWaitInspection"/>
869     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptySyncBlock" displayName="Empty 'synchronized' block"
870                      groupName="Threading issues"
871                      enabledByDefault="false" level="WARNING"
872                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyEmptySyncBlockInspection"/>
873     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizationOnThis" displayName="Synchronization on 'this'"
874                      groupName="Threading issues"
875                      enabledByDefault="false" level="WARNING"
876                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizationOnThisInspection"/>
877     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizedMethod" displayName="Synchronized method"
878                      groupName="Threading issues"
879                      enabledByDefault="false" level="WARNING"
880                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizedMethodInspection"/>
881     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedSynchronizedStatement"
882                      displayName="Nested 'synchronized' statement"
883                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
884                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyNestedSynchronizedStatementInspection"/>
885     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyThreadStopSuspendResume"
886                      displayName="Call to Thread.stop(), Thread.suspend(), or Thread.resume()"
887                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
888                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyThreadStopSuspendResumeInspection"/>
889     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySystemRunFinalizersOnExit"
890                      displayName="Call to System.runFinalizersOnExit()"
891                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
892                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySystemRunFinalizersOnExitInspection"/>
893     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNotifyWhileNotSynchronized"
894                      displayName="'notify()' or 'notifyAll()' while not synced"
895                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
896                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyNotifyWhileNotSynchronizedInspection"/>
897     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyWaitCallNotInLoop" displayName="'wait()' not in loop"
898                      groupName="Threading issues"
899                      enabledByDefault="false" level="WARNING"
900                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyWaitCallNotInLoopInspection"/>
901     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyWaitWhileNotSynchronized" displayName="'wait()' while not synced"
902                      groupName="Threading issues"
903                      enabledByDefault="false" level="WARNING"
904                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyWaitWhileNotSynchronizedInspection"/>
905     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizationOnNonFinalField"
906                      displayName="Synchronization on non-final field"
907                      groupName="Threading issues" enabledByDefault="true" level="WARNING"
908                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizationOnNonFinalFieldInspection"/>
909     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizationOnVariableInitializedWithLiteral"
910                      displayName="Synchronization on variable initialized with literal" groupName="Threading issues"
911                      enabledByDefault="true" level="WARNING"
912                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizationOnVariableInitializedWithLiteralInspection"/>
913     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnsynchronizedMethodOverridesSynchronizedMethod"
914                      displayName="Unsynchronized method overrides synchronized method" groupName="Threading issues" enabledByDefault="true"
915                      level="WARNING"
916                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyUnsynchronizedMethodOverridesSynchronizedMethodInspection"/>
917     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyWhileLoopSpinsOnField" displayName="While loop spins on field"
918                      groupName="Threading issues"
919                      enabledByDefault="false" level="WARNING"
920                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyWhileLoopSpinsOnFieldInspection"/>
921     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMethodParameterCount"
922                      displayName="Method with too many parameters" groupName="Method Metrics"
923                      enabledByDefault="false" level="WARNING"
924                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyMethodParameterCountInspection"/>
925     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyComplexMethod" displayName="Overly complex method"
926                      groupName="Method Metrics"
927                      enabledByDefault="false" level="WARNING"
928                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyOverlyComplexMethodInspection"/>
929     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyLongMethod" displayName="Overly long method"
930                      groupName="Method Metrics" enabledByDefault="false"
931                      level="WARNING"
932                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyOverlyLongMethodInspection"/>
933     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyNestedMethod" displayName="Overly nested method"
934                      groupName="Method Metrics"
935                      enabledByDefault="false" level="WARNING"
936                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyOverlyNestedMethodInspection"/>
937     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMethodWithMoreThanThreeNegations"
938                      displayName="Method with more than three negations"
939                      groupName="Method Metrics" enabledByDefault="false" level="WARNING"
940                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyMethodWithMoreThanThreeNegationsInspection"/>
941     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMultipleReturnPointsPerMethod"
942                      displayName="Method with multiple return points"
943                      groupName="Method Metrics" enabledByDefault="false" level="WARNING"
944                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyMultipleReturnPointsPerMethodInspection"/>
945     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedSwitch" displayName="Nested switch statement"
946                      groupName="Potentially confusing code constructs"
947                      enabledByDefault="false" level="WARNING"
948                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNestedSwitchInspection"/>
949     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditional" displayName="Conditional expression"
950                      groupName="Potentially confusing code constructs"
951                      enabledByDefault="false" level="WARNING"
952                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyConditionalInspection"/>
953     <localInspection language="Groovy" groupPath="Groovy" shortName="GrFieldAlreadyDefined"
954                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
955                      key="field.already.defined" groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
956                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GrFieldAlreadyDefinedInspection"/>
957     <localInspection language="Groovy" groupPath="Groovy" shortName="ClashingGetters"
958                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
959                      key="clashing.getters" groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
960                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.ClashingGettersInspection"/>
961     <localInspection language="Groovy" groupPath="Groovy" shortName="GrPackage"
962                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
963                      key="gr.package" groupName="Potentially confusing code constructs" enabledByDefault="true" level="WARNING"
964                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GrPackageInspection"/>
965     <localInspection language="Groovy" groupPath="Groovy" shortName="GrDeprecatedAPIUsage"
966                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
967                      key="gr.deprecated.api.usage" groupName="Potentially confusing code constructs" enabledByDefault="true" level="WARNING"
968                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GrDeprecatedAPIUsageInspection"/>
969     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedConditional" displayName="Nested conditional expression"
970                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
971                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNestedConditionalInspection"/>
972     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNegatedConditional" displayName="Negated conditional expression"
973                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
974                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNegatedConditionalInspection"/>
975     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInArgumentCheck" displayName="Incompatible 'in' argument types"
976                      enabledByDefault="true" groupName="Probable bugs" level="WARNING"
977                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyInArgumentCheckInspection"/>
978     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNegatedIf" displayName="Negated if condition expression"
979                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
980                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNegatedIfInspection"/>
981     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyResultOfIncrementOrDecrementUsed"
982                      displayName="Result of increment or decrement used"
983                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
984                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyResultOfIncrementOrDecrementUsedInspection"/>
985     <localInspection language="Groovy" groupPath="Groovy" enabledByDefault="true" level="WARNING"
986                      shortName="GrReassignedInClosureLocalVar"
987                      displayName="Local variable is reassigned in closure or anonymous class"
988                      groupName="Potentially confusing code constructs"
989                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GrReassignedInClosureLocalVarInspection"/>
990     <localInspection language="Groovy" groupPath="Groovy" shortName="UnnecessaryQualifiedReference"
991                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
992                      key="unnecessary.qualified.reference" groupName="Potentially confusing code constructs" enabledByDefault="true"
993                      level="WARNING"
994                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.UnnecessaryQualifiedReferenceInspection"/>
995     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyStatementBody" displayName="Statement with empty body"
996                      groupName="Potentially confusing code constructs" enabledByDefault="true" level="WARNING"
997                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyEmptyStatementBodyInspection"/>
998     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyPointlessBoolean"
999                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
1000                      key="pointless.boolean.display.name" groupName="Potentially confusing code constructs" enabledByDefault="true"
1001                      level="WARNING"
1002                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyPointlessBooleanInspection"/>
1003     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyPointlessArithmetic"
1004                      displayName="Pointless arithmetic expression"
1005                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
1006                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyPointlessArithmeticInspection"/>
1007     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDoubleNegation" displayName="Double negation"
1008                      groupName="Potentially confusing code constructs"
1009                      enabledByDefault="true" level="WARNING"
1010                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyDoubleNegationInspection"/>
1011     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyComplexArithmeticExpression"
1012                      displayName="Overly complex arithmetic expression"
1013                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
1014                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyOverlyComplexArithmeticExpressionInspection"/>
1015     <localInspection language="Groovy" groupPath="Groovy" shortName="ClashingTraitMethods"
1016                      displayName="Clashing trait methods"
1017                      groupName="Potentially confusing code constructs" enabledByDefault="true" level="WARNING"
1018                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.ClashingTraitMethodsInspection"/>
1019
1020     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyComplexBooleanExpression"
1021                      displayName="Overly complex boolean expression"
1022                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
1023                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyOverlyComplexBooleanExpressionInspection"/>
1024     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOctalInteger" displayName="Octal integer"
1025                      groupName="Potentially confusing code constructs"
1026                      enabledByDefault="false" level="WARNING"
1027                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyOctalIntegerInspection"/>
1028     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDuplicateSwitchBranch" displayName="Duplicate switch case"
1029                      groupName="Validity issues"
1030                      enabledByDefault="true" level="WARNING"
1031                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.validity.GroovyDuplicateSwitchBranchInspection"/>
1032     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNonShortCircuitBoolean" displayName="Non short-circuit boolean"
1033                      groupName="Probable bugs"
1034                      enabledByDefault="false" level="WARNING"
1035                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyNonShortCircuitBooleanInspection"/>
1036     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInfiniteLoopStatement" displayName="Infinite loop statement"
1037                      groupName="Probable bugs"
1038                      enabledByDefault="true" level="WARNING"
1039                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyInfiniteLoopStatementInspection"/>
1040     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInfiniteRecursion" displayName="Infinite recursion"
1041                      groupName="Probable bugs" enabledByDefault="true"
1042                      level="WARNING"
1043                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyInfiniteRecursionInspection"/>
1044     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDivideByZero" displayName="Divide by zero"
1045                      groupName="Probable bugs" enabledByDefault="true"
1046                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyDivideByZeroInspection"/>
1047     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyResultOfObjectAllocationIgnored"
1048                      displayName="Result of object allocation ignored"
1049                      groupName="Probable bugs" enabledByDefault="true" level="WARNING"
1050                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyResultOfObjectAllocationIgnoredInspection"/>
1051     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAccessibility"
1052                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
1053                      key="access.to.inaccessible.element" groupName="Probable bugs" enabledByDefault="true" level="WARNING"
1054                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyAccessibilityInspection"/>
1055     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstructorNamedArguments"
1056                      displayName="Named arguments of constructor call" groupName="Probable bugs"
1057                      enabledByDefault="true" level="WARNING"
1058                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyConstructorNamedArgumentsInspection"/>
1059     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDocCheck" displayName="GroovyDoc issues"
1060                      groupName="Probable bugs"
1061                      enabledByDefault="true" level="ERROR"
1062                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyDocCheckInspection"/>
1063     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyRangeTypeCheck"
1064                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
1065                      key="incorrect.range.argument" groupName="Probable bugs" enabledByDefault="false" level="WARNING"
1066                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyRangeTypeCheckInspection"/>
1067     <localInspection language="Groovy" groupPath="Groovy" shortName="NewInstanceOfSingleton"
1068                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
1069                      key="new.instance.of.singleton" groupName="Potentially confusing code constructs" enabledByDefault="true"
1070                      level="WARNING"
1071                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.NewInstanceOfSingletonInspection"/>
1072     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyLabeledStatement"
1073                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
1074                      key="check.labeled.statement" groupName="Probable bugs" enabledByDefault="true" level="WARNING"
1075                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyLabeledStatementInspection"/>
1076     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyClassNamingConvention" displayName="Class naming convention"
1077                      groupName="Naming Conventions"
1078                      enabledByDefault="false" level="WARNING"
1079                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyClassNamingConventionInspection"/>
1080     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInterfaceNamingConvention"
1081                      displayName="Interface naming convention" groupName="Naming Conventions"
1082                      enabledByDefault="false" level="WARNING"
1083                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyInterfaceNamingConventionInspection"/>
1084     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAnnotationNamingConvention"
1085                      displayName="Annotation naming convention" groupName="Naming Conventions"
1086                      enabledByDefault="false" level="WARNING"
1087                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyAnnotationNamingConventionInspection"/>
1088     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEnumerationNamingConvention"
1089                      displayName="Enumeration naming convention"
1090                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
1091                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyEnumerationNamingConventionInspection"/>
1092     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyLocalVariableNamingConvention"
1093                      displayName="Local variable naming convention"
1094                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
1095                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyLocalVariableNamingConventionInspection"/>
1096     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyStaticMethodNamingConvention"
1097                      displayName="Static method naming convention"
1098                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
1099                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyStaticMethodNamingConventionInspection"/>
1100     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyStaticVariableNamingConvention"
1101                      displayName="Static variable naming convention"
1102                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
1103                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyStaticVariableNamingConventionInspection"/>
1104     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInstanceMethodNamingConvention"
1105                      displayName="Instance method naming convention"
1106                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
1107                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyInstanceMethodNamingConventionInspection"/>
1108     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInstanceVariableNamingConvention"
1109                      displayName="Instance variable naming convention"
1110                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
1111                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyInstanceVariableNamingConventionInspection"/>
1112     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstantNamingConvention"
1113                      displayName="Constant naming convention" groupName="Naming Conventions"
1114                      enabledByDefault="false" level="WARNING"
1115                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyConstantNamingConventionInspection"/>
1116     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyParameterNamingConvention"
1117                      displayName="Method parameter naming convention"
1118                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
1119                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyParameterNamingConventionInspection"/>
1120     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMapGetCanBeKeyedAccess"
1121                      displayName="Call to Map.get can be keyed access"
1122                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
1123                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyMapGetCanBeKeyedAccessInspection"/>
1124     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMapPutCanBeKeyedAccess"
1125                      displayName="Call to Map.put can be keyed access"
1126                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
1127                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyMapPutCanBeKeyedAccessInspection"/>
1128     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyListGetCanBeKeyedAccess"
1129                      displayName="Call to List.get can be keyed access"
1130                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
1131                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyListGetCanBeKeyedAccessInspection"/>
1132     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyListSetCanBeKeyedAccess"
1133                      displayName="Call to List.set can be keyed access"
1134                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
1135                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyListSetCanBeKeyedAccessInspection"/>
1136     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUntypedAccess" displayName="Access to untyped expression"
1137                      groupName="Probable bugs"
1138                      enabledByDefault="false" level="WARNING"
1139                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.untypedUnresolvedAccess.GroovyUntypedAccessInspection"/>
1140     <localInspection language="Groovy" groupPath="Groovy" shortName="GrUnresolvedAccess" displayName="Access to unresolved expression"
1141                      groupName="Probable bugs"
1142                      enabledByDefault="true" level="WEAK WARNING"
1143                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.untypedUnresolvedAccess.GrUnresolvedAccessInspection"/>
1144     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySingletonAnnotation"
1145                      displayName="Check '@Singleton' annotation conventions"
1146                      groupName="Annotations verifying" enabledByDefault="true" level="WARNING"
1147                      implementationClass="org.jetbrains.plugins.groovy.annotator.inspections.GroovySingletonAnnotationInspection"/>
1148
1149     <localInspection language="Groovy" groupPath="Groovy" shortName="DelegatesTo" displayName="@DelegatesTo inspection"
1150                      groupName="Annotations verifying" enabledByDefault="true" level="WARNING"
1151                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.DelegatesToInspection"/>
1152
1153     <localInspection language="Groovy"
1154                      shortName="GroovyVariableCanBeFinal"
1155                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
1156                      groupPath="Groovy"
1157                      groupKey="groovy.dfa.issues"
1158                      key="variable.can.be.final"
1159                      enabledByDefault="false"
1160                      level="WARNING"
1161                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.dataflow.GroovyVariableCanBeFinalInspection"/>
1162
1163     <localInspection language="Groovy"
1164                      groupPath="Groovy"
1165                      bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
1166                      groupKey="groovy.probable.bugs"
1167                      key="equals.between.inconvertible.types"
1168                      enabledByDefault="true"
1169                      level="WARNING"
1170                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GrEqualsBetweenInconvertibleTypesInspection"/>
1171
1172     <packageDependencies.visitor language="Groovy"
1173                                  implementationClass="org.jetbrains.plugins.groovy.codeInspection.dependencies.GrDependencyVisitorFactory"/>
1174
1175     <implicitUsageProvider implementation="org.jetbrains.plugins.groovy.findUsages.GrImplicitUsageProvider"/>
1176     <implicitUsageProvider implementation="org.jetbrains.plugins.groovy.transformations.impl.synch.SynchronizedImplicitUsageProvider"/>
1177
1178     <scratch.rootType implementation="org.jetbrains.plugins.groovy.console.GroovyConsoleRootType"/>
1179     <resolveScopeProvider implementation="org.jetbrains.plugins.groovy.console.GroovyConsoleResolveScopeProvider"/>
1180     
1181     <!-- control flow -->
1182     <intentionAction>
1183       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1184       <categoryKey>intention.category.control.flow</categoryKey>
1185       <className>org.jetbrains.plugins.groovy.intentions.control.DemorgansLawIntention</className>
1186     </intentionAction>
1187     <intentionAction>
1188       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1189       <categoryKey>intention.category.control.flow</categoryKey>
1190       <className>org.jetbrains.plugins.groovy.intentions.control.SplitIfIntention</className>
1191     </intentionAction>
1192     <intentionAction>
1193       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1194       <categoryKey>intention.category.control.flow</categoryKey>
1195       <className>org.jetbrains.plugins.groovy.intentions.control.InvertIfIntention</className>
1196     </intentionAction>
1197     <intentionAction>
1198       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1199       <categoryKey>intention.category.control.flow</categoryKey>
1200       <className>org.jetbrains.plugins.groovy.intentions.control.GrRedundantElseIntention</className>
1201     </intentionAction>
1202     <intentionAction>
1203       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1204       <categoryKey>intention.category.control.flow</categoryKey>
1205       <className>org.jetbrains.plugins.groovy.intentions.control.FlipIfIntention</className>
1206     </intentionAction>
1207     <intentionAction>
1208       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1209       <categoryKey>intention.category.control.flow</categoryKey>
1210       <className>org.jetbrains.plugins.groovy.intentions.control.ReplaceTernaryWithIfElseIntention</className>
1211     </intentionAction>
1212     <intentionAction>
1213       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1214       <categoryKey>intention.category.control.flow</categoryKey>
1215       <className>org.jetbrains.plugins.groovy.intentions.control.ReplaceIfWithTernaryIntention</className>
1216     </intentionAction>
1217     <intentionAction>
1218       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1219       <categoryKey>intention.category.control.flow</categoryKey>
1220       <className>org.jetbrains.plugins.groovy.intentions.control.SimplifyTernaryOperatorIntention</className>
1221     </intentionAction>
1222     <intentionAction>
1223       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1224       <categoryKey>intention.category.control.flow</categoryKey>
1225       <className>org.jetbrains.plugins.groovy.intentions.control.CreateParameterForFieldIntention</className>
1226     </intentionAction>
1227     <intentionAction>
1228       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1229       <categoryKey>intention.category.control.flow</categoryKey>
1230       <className>org.jetbrains.plugins.groovy.intentions.control.MergeIfAndIntention</className>
1231     </intentionAction>
1232     <intentionAction>
1233       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1234       <categoryKey>intention.category.control.flow</categoryKey>
1235       <className>org.jetbrains.plugins.groovy.intentions.control.ExpandBooleanIntention</className>
1236     </intentionAction>
1237     <intentionAction>
1238       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1239       <categoryKey>intention.category.control.flow</categoryKey>
1240       <className>org.jetbrains.plugins.groovy.intentions.control.FlipConjunctionIntention</className>
1241     </intentionAction>
1242     <intentionAction>
1243       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1244       <categoryKey>intention.category.control.flow</categoryKey>
1245       <className>org.jetbrains.plugins.groovy.intentions.control.FlipComparisonIntention</className>
1246     </intentionAction>
1247     <intentionAction>
1248       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1249       <categoryKey>intention.category.control.flow</categoryKey>
1250       <className>org.jetbrains.plugins.groovy.intentions.control.NegateComparisonIntention</className>
1251     </intentionAction>
1252     <intentionAction>
1253       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1254       <categoryKey>intention.category.control.flow</categoryKey>
1255       <className>org.jetbrains.plugins.groovy.intentions.control.MergeElseIfIntention</className>
1256     </intentionAction>
1257     <intentionAction>
1258       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1259       <categoryKey>intention.category.control.flow</categoryKey>
1260       <className>org.jetbrains.plugins.groovy.intentions.control.SplitElseIfIntention</className>
1261     </intentionAction>
1262     <intentionAction>
1263       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1264       <categoryKey>intention.category.control.flow</categoryKey>
1265       <className>org.jetbrains.plugins.groovy.intentions.control.FlipConditionalIntention</className>
1266     </intentionAction>
1267
1268     <!-- closures -->
1269     <intentionAction>
1270       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1271       <categoryKey>intention.category.closures</categoryKey>
1272       <className>org.jetbrains.plugins.groovy.intentions.closure.MakeClosureCallExplicitIntention</className>
1273     </intentionAction>
1274     <intentionAction>
1275       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1276       <categoryKey>intention.category.closures</categoryKey>
1277       <className>org.jetbrains.plugins.groovy.intentions.closure.MakeClosureCallImplicitIntention</className>
1278     </intentionAction>
1279     <intentionAction>
1280       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1281       <categoryKey>intention.category.closures</categoryKey>
1282       <className>org.jetbrains.plugins.groovy.intentions.closure.ForToEachIntention</className>
1283     </intentionAction>
1284     <intentionAction>
1285       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1286       <categoryKey>intention.category.closures</categoryKey>
1287       <className>org.jetbrains.plugins.groovy.intentions.closure.EachToForIntention</className>
1288     </intentionAction>
1289     <!--
1290     todo make this work
1291     <intentionAction>
1292       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1293       <categoryKey>intention.category.closures</categoryKey>
1294       <className>org.jetbrains.plugins.groovy.intentions.closure.ConvertClosureArgToItIntention</className>
1295     </intentionAction>
1296     -->
1297
1298
1299     <!-- comments -->
1300     <intentionAction>
1301       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1302       <categoryKey>intention.category.comments</categoryKey>
1303       <className>org.jetbrains.plugins.groovy.intentions.comments.ChangeToCStyleCommentIntention</className>
1304     </intentionAction>
1305     <!--
1306     todo make this work
1307     <intentionAction>
1308       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1309       <categoryKey>intention.category.comments</categoryKey>
1310       <className>org.jetbrains.plugins.groovy.intentions.comments.ChangeToEndOfLineCommentIntention</className>
1311     </intentionAction>
1312     -->
1313
1314     <!-- conversions -->
1315     <intentionAction>
1316       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1317       <categoryKey>intention.category.conversions</categoryKey>
1318       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertJavaStyleArrayIntention</className>
1319     </intentionAction>
1320     <intentionAction>
1321       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1322       <categoryKey>intention.category.conversions</categoryKey>
1323       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToDecimalIntention</className>
1324     </intentionAction>
1325     <intentionAction>
1326       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1327       <categoryKey>intention.category.conversions</categoryKey>
1328       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToHexIntention</className>
1329     </intentionAction>
1330     <intentionAction>
1331       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1332       <categoryKey>intention.category.conversions</categoryKey>
1333       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToOctalIntention</className>
1334     </intentionAction>
1335     <intentionAction>
1336       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1337       <categoryKey>intention.category.conversions</categoryKey>
1338       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToBinaryIntention</className>
1339     </intentionAction>
1340     <intentionAction>
1341       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1342       <categoryKey>intention.category.conversions</categoryKey>
1343       <className>org.jetbrains.plugins.groovy.intentions.conversions.IndexingMethodConversionIntention</className>
1344     </intentionAction>
1345     <intentionAction>
1346       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1347       <categoryKey>intention.category.conversions</categoryKey>
1348       <className>org.jetbrains.plugins.groovy.intentions.conversions.IndexedExpressionConversionIntention</className>
1349     </intentionAction>
1350     <intentionAction>
1351       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1352       <categoryKey>intention.category.conversions</categoryKey>
1353       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertGStringToStringIntention</className>
1354     </intentionAction>
1355     <intentionAction>
1356       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1357       <categoryKey>intention.category.conversions</categoryKey>
1358       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertMultilineStringToSingleLineIntention</className>
1359     </intentionAction>
1360     <intentionAction>
1361       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1362       <categoryKey>intention.category.conversions</categoryKey>
1363       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertToRegexIntention</className>
1364     </intentionAction>
1365     <intentionAction>
1366       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1367       <categoryKey>intention.category.conversions</categoryKey>
1368       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertToDollarSlashRegexIntention</className>
1369     </intentionAction>
1370     <intentionAction>
1371       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1372       <categoryKey>intention.category.conversions</categoryKey>
1373       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.GrConvertStringToCharIntention</className>
1374     </intentionAction>
1375     <intentionAction>
1376       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1377       <categoryKey>intention.category.conversions</categoryKey>
1378       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.RemoveUnnecessaryEscapeCharactersIntention</className>
1379     </intentionAction>
1380     <intentionAction>
1381       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1382       <categoryKey>intention.category.conversions</categoryKey>
1383       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.GrBreakStringOnLineBreaksIntention</className>
1384     </intentionAction>
1385     <intentionAction>
1386       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1387       <categoryKey>intention.category.conversions</categoryKey>
1388       <className>org.jetbrains.plugins.groovy.intentions.conversions.GrSplitDeclarationIntention</className>
1389     </intentionAction>
1390     <intentionAction>
1391       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1392       <categoryKey>intention.category.conversions</categoryKey>
1393       <className>org.jetbrains.plugins.groovy.intentions.conversions.RemoveParenthesesFromMethodCallIntention</className>
1394     </intentionAction>
1395     <intentionAction>
1396       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1397       <categoryKey>intention.category.conversions</categoryKey>
1398       <className>org.jetbrains.plugins.groovy.intentions.conversions.RemoveUnnecessaryBracesInGStringIntention</className>
1399     </intentionAction>
1400     <intentionAction>
1401       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1402       <categoryKey>intention.category.conversions</categoryKey>
1403       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertMapToClassIntention</className>
1404     </intentionAction>
1405     <intentionAction>
1406       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1407       <categoryKey>intention.category.conversions</categoryKey>
1408       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertConcatenationToGstringIntention</className>
1409     </intentionAction>
1410     <intentionAction>
1411       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1412       <categoryKey>intention.category.conversions</categoryKey>
1413       <className>org.jetbrains.plugins.groovy.intentions.conversions.RenameFileWithClassIntention</className>
1414     </intentionAction>
1415     <intentionAction>
1416       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1417       <categoryKey>intention.category.conversions</categoryKey>
1418       <className>org.jetbrains.plugins.groovy.intentions.conversions.MoveClassToNewFileIntention</className>
1419     </intentionAction>
1420     <intentionAction>
1421       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1422       <categoryKey>intention.category.conversions</categoryKey>
1423       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertMethodToClosureIntention</className>
1424     </intentionAction>
1425     <intentionAction>
1426       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1427       <categoryKey>intention.category.conversions</categoryKey>
1428       <className>org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertStringToMultilineIntention</className>
1429     </intentionAction>
1430     <intentionAction>
1431       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1432       <categoryKey>intention.category.conversions</categoryKey>
1433       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertClosureToMethodIntention</className>
1434     </intentionAction>
1435     <intentionAction>
1436       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1437       <categoryKey>intention.category.conversions</categoryKey>
1438       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertSimpleGetterToPropertyIntention</className>
1439     </intentionAction>
1440     <intentionAction>
1441       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1442       <categoryKey>intention.category.conversions</categoryKey>
1443       <className>org.jetbrains.plugins.groovy.intentions.conversions.GrConvertTypeCastToSafeCastIntention</className>
1444     </intentionAction>
1445     <intentionAction>
1446       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1447       <categoryKey>intention.category.conversions</categoryKey>
1448       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertJunitAssertionToAssertStatementIntention</className>
1449     </intentionAction>
1450
1451     <!-- groovy style -->
1452     <intentionAction>
1453       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1454       <categoryKey>intention.category.groovy.style</categoryKey>
1455       <className>org.jetbrains.plugins.groovy.intentions.style.JavaStylePropertiesInvocationIntention</className>
1456     </intentionAction>
1457     <intentionAction>
1458       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1459       <categoryKey>intention.category.groovy.style</categoryKey>
1460       <className>org.jetbrains.plugins.groovy.intentions.style.ImportStaticIntention</className>
1461     </intentionAction>
1462     <intentionAction>
1463       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1464       <categoryKey>intention.category.groovy.style</categoryKey>
1465       <className>org.jetbrains.plugins.groovy.intentions.style.ImportOnDemandIntention</className>
1466     </intentionAction>
1467     <intentionAction>
1468       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1469       <categoryKey>intention.category.groovy.style</categoryKey>
1470       <className>org.jetbrains.plugins.groovy.intentions.style.ConvertToGeeseBracesIntention</className>
1471     </intentionAction>
1472     <intentionAction>
1473       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1474       <categoryKey>intention.category.groovy.style</categoryKey>
1475       <className>org.jetbrains.plugins.groovy.intentions.style.RemoveRedundantClassPropertyIntention</className>
1476     </intentionAction>
1477     <intentionAction>
1478       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1479       <categoryKey>intention.category.groovy.style</categoryKey>
1480       <className>org.jetbrains.plugins.groovy.intentions.style.ConvertFromGeeseBracesIntention</className>
1481     </intentionAction>
1482     <intentionAction>
1483       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1484       <categoryKey>intention.category.groovy.style</categoryKey>
1485       <className>org.jetbrains.plugins.groovy.intentions.style.RemoveUnnecessaryReturnIntention</className>
1486     </intentionAction>
1487     <intentionAction>
1488       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1489       <categoryKey>intention.category.groovy.style</categoryKey>
1490       <className>org.jetbrains.plugins.groovy.intentions.style.AddReturnTypeFix</className>
1491     </intentionAction>
1492     <intentionAction>
1493       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1494       <categoryKey>intention.category.groovy.style</categoryKey>
1495       <className>org.jetbrains.plugins.groovy.intentions.style.parameterToEntry.ConvertParameterToMapEntryIntention</className>
1496     </intentionAction>
1497     <intentionAction>
1498       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1499       <categoryKey>intention.category.groovy.style</categoryKey>
1500       <className>org.jetbrains.plugins.groovy.intentions.style.ReplaceAbstractClassInstanceByMapIntention</className>
1501     </intentionAction>
1502
1503     <intentionAction>
1504       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1505       <categoryKey>intention.category.groovy</categoryKey>
1506       <className>org.jetbrains.plugins.groovy.grape.GrabDependencies</className>
1507     </intentionAction>
1508
1509     <!--declaration-->
1510     <intentionAction>
1511       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1512       <categoryKey>intention.category.groovy.declaration</categoryKey>
1513       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrCreateSubclassAction</className>
1514     </intentionAction>
1515     <intentionAction>
1516       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1517       <categoryKey>intention.category.groovy.declaration</categoryKey>
1518       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrCreateFieldForParameterIntention</className>
1519     </intentionAction>
1520     <intentionAction>
1521       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1522       <categoryKey>intention.category.groovy.declaration</categoryKey>
1523       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrSetStrongTypeIntention</className>
1524     </intentionAction>
1525     <intentionAction>
1526       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1527       <categoryKey>intention.category.groovy.declaration</categoryKey>
1528       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrMakeMemberPublicIntention</className>
1529     </intentionAction>
1530     <intentionAction>
1531       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1532       <categoryKey>intention.category.groovy.declaration</categoryKey>
1533       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrMakeMemberProtectedIntention</className>
1534     </intentionAction>
1535     <intentionAction>
1536       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1537       <categoryKey>intention.category.groovy.declaration</categoryKey>
1538       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrMakeMemberPrivateIntention</className>
1539     </intentionAction>
1540     <intentionAction>
1541       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1542       <categoryKey>intention.category.groovy.declaration</categoryKey>
1543       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrIntroduceLocalVariableIntention</className>
1544     </intentionAction>
1545
1546     <!--other-->
1547     <intentionAction>
1548       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1549       <categoryKey>intention.category.groovy.other</categoryKey>
1550       <className>org.jetbrains.plugins.groovy.intentions.other.GrCreateMissingSwitchBranchesIntention</className>
1551     </intentionAction>
1552     <intentionAction>
1553       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1554       <categoryKey>intention.category.groovy.other</categoryKey>
1555       <className>org.jetbrains.plugins.groovy.intentions.other.GrAliasImportIntention</className>
1556     </intentionAction>
1557     <intentionAction>
1558       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1559       <categoryKey>intention.category.groovy.other</categoryKey>
1560       <className>org.jetbrains.plugins.groovy.intentions.other.GrCopyStringConcatenationContentIntention</className>
1561     </intentionAction>
1562
1563     <intentionAction>
1564       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1565       <categoryKey>intention.category.groovy.other</categoryKey>
1566       <className>org.jetbrains.plugins.groovy.intentions.other.GrSortMapKeysIntention</className>
1567     </intentionAction>
1568
1569     <intentionAction>
1570       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
1571       <categoryKey>intention.category.groovy.declaration</categoryKey>
1572       <className>org.jetbrains.plugins.groovy.intentions.declaration.GrRemoveExplicitTypeDeclarationIntention</className>
1573     </intentionAction>
1574
1575     <projectService
1576         serviceImplementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicToolWindowWrapper"/>
1577
1578     <projectService serviceInterface="org.jetbrains.plugins.groovy.griffon.GriffonProjectViewState"
1579                     serviceImplementation="org.jetbrains.plugins.groovy.griffon.GriffonProjectViewState"/>
1580
1581     <java.programPatcher implementation="org.jetbrains.plugins.groovy.debugger.GroovyHotSwapper"/>
1582     <psi.referenceContributor implementation="org.jetbrains.plugins.groovy.gpp.GppReferenceContributor"/>
1583
1584     <library.presentationProvider implementation="org.jetbrains.plugins.groovy.griffon.GriffonLibraryPresentationProvider"/>
1585     <moduleBuilder builderClass="org.jetbrains.plugins.groovy.griffon.GriffonModuleBuilder" id="griffonModuleBuilder"/>
1586     <projectStructureDetector implementation="org.jetbrains.plugins.groovy.griffon.GriffonProjectStructureDetector"
1587                               order="before groovyDetector"/>
1588     <programRunner implementation="org.jetbrains.plugins.groovy.griffon.GriffonDebuggerRunner"/>
1589     <configurationType implementation="org.jetbrains.plugins.groovy.griffon.GriffonRunConfigurationType"/>
1590     <toolWindow id="Griffon View" anchor="left" secondary="false" icon="JetgroovyIcons.Griffon.GriffonToolWindow"
1591                 factoryClass="org.jetbrains.plugins.groovy.griffon.GriffonToolWindowFactory"
1592                 conditionClass="org.jetbrains.plugins.groovy.griffon.GriffonToolWindowFactory"/>
1593
1594     <roots.watchedRootsProvider implementation="org.jetbrains.plugins.groovy.mvc.MvcWatchedRootProvider"/>
1595     <projectService serviceInterface="org.jetbrains.plugins.groovy.mvc.MvcConsole"
1596                     serviceImplementation="org.jetbrains.plugins.groovy.mvc.MvcConsole"/>
1597     <selectInTarget implementation="org.jetbrains.plugins.groovy.mvc.projectView.MvcProjectViewSelectInTarget"/>
1598     <applicationService serviceImplementation="org.jetbrains.plugins.groovy.mvc.MvcRunTargetHistoryService"
1599                         serviceInterface="org.jetbrains.plugins.groovy.mvc.MvcRunTargetHistoryService"/>
1600     <applicationService serviceInterface="org.jetbrains.plugins.groovy.codeInspection.GroovyQuickFixFactory"
1601                         serviceImplementation="org.jetbrains.plugins.groovy.codeInspection.GroovyQuickFixFactoryImpl"/>
1602
1603     <debugger.positionManagerFactory id="groovyPositionManager"
1604                                      implementation="org.jetbrains.plugins.groovy.debugger.GroovyPositionManagerFactory"/>
1605     <debugger.positionManagerFactory order="after groovyPositionManager"
1606                                      implementation="org.jetbrains.plugins.groovy.springloaded.SpringLoadedPositionManagerFactory"/>
1607     <debugger.nodeRenderer implementation="org.jetbrains.plugins.groovy.debugger.GroovyRefRenderer"/>
1608     <codeStyle.ReferenceAdjuster language="Groovy" implementationClass="org.jetbrains.plugins.groovy.codeStyle.GrReferenceAdjuster"/>
1609     <codeInsight.unresolvedReferenceQuickFixProvider implementation="org.jetbrains.plugins.groovy.jarFinder.GroovyFindJarQuickFixProvider"/>
1610     <lang.refactoringSupport.classMembersRefactoringSupport language="Groovy"
1611                                                             implementationClass="org.jetbrains.plugins.groovy.refactoring.classMembers.GroovyClassMembersRefactoringSupport"/>
1612     <refactoring.pullUpHelperFactory language="Groovy"
1613                                      implementationClass="org.jetbrains.plugins.groovy.refactoring.memberPullUp.GrPullUpHelperFactory"/>
1614     <classTypePointerFactory implementation="org.jetbrains.plugins.groovy.lang.psi.impl.smartPointers.GrClassReferenceTypePointerFactory"/>
1615     <hierarchy.referenceProcessor implementation="org.jetbrains.plugins.groovy.hierarchy.call.GrCallReferenceProcessor"/>
1616     <structuralsearch.profile implementation="com.intellij.structuralsearch.GroovyStructuralSearchProfile"/>
1617     <equivalenceDescriptorProvider implementation="com.intellij.structuralsearch.GroovyEquivalenceDescriptorProvider"/>
1618
1619     <applicationService serviceImplementation="org.jetbrains.plugins.groovy.dsl.DslActivationStatus"/>
1620     <projectService serviceImplementation="org.jetbrains.plugins.groovy.console.GroovyConsoleStateService"/>
1621
1622     <refactoring.introduceParameterObject language="Groovy"
1623                                           implementationClass="org.jetbrains.plugins.groovy.refactoring.introduceParameterObject.GroovyIntroduceParameterObjectDelegate"/>
1624     <documentationDelegateProvider implementation="org.jetbrains.plugins.groovy.lang.documentation.GrLightDocumentationDelegateProvider"/>
1625     <breadcrumbsInfoProvider implementation="org.jetbrains.plugins.groovy.editor.GroovyBreadcrumbsInfoProvider"/>
1626     <stripTrailingSpacesFilterFactory implementation="org.jetbrains.plugins.groovy.editor.GroovyStripTrailingSpacesFilterFactory"/>
1627     <generateAccessorProvider implementation="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateAccessorProvider"/>
1628     <consoleFilterProvider implementation="org.jetbrains.plugins.groovy.execution.filters.GrCompilationErrorsFilterProvider"/>
1629     <outOfSourcesChecker implementation="org.jetbrains.plugins.groovy.projectRoots.GroovyOutOfSourcesChecker"/>
1630   </extensions>
1631
1632   <extensions defaultExtensionNs="com.intellij.debugger">
1633     <codeFragmentFactory implementation="org.jetbrains.plugins.groovy.debugger.GroovyCodeFragmentFactory"/>
1634   </extensions>
1635
1636   <actions>
1637     <action id="Groovy.Shell.Execute" class="com.intellij.openapi.actionSystem.EmptyAction" use-shortcut-of="Console.Execute.Multiline"
1638             text="Execute Groovy Code"
1639             description="Execute Groovy code in console">
1640       <keyboard-shortcut first-keystroke="control ENTER" keymap="$default"/>
1641     </action>
1642
1643     <group id="Groovy.CheckResources" class="org.jetbrains.plugins.groovy.compiler.CheckResourcesAction$Group"
1644            popup="true"
1645            text="Gr_oovy Resources"
1646            description="Run the compiler for Groovy files in resource roots to check for compilation issues">
1647       <action class="org.jetbrains.plugins.groovy.compiler.CheckResourcesAction$Make" id="Groovy.CheckResources.Make"
1648               text="_Build Resources"
1649               description="Run the incremental compiler for Groovy files in resource roots to check for compilation issues"/>
1650       <action class="org.jetbrains.plugins.groovy.compiler.CheckResourcesAction$Rebuild" id="Groovy.CheckResources.Rebuild"
1651               text="_Rebuild Resources"
1652               description="Run the compiler for all Groovy files in resource roots to check for compilation issues"/>
1653       <add-to-group group-id="BuildMenu"/>
1654     </group>
1655
1656     <action id="Groovy.NewClass" class="org.jetbrains.plugins.groovy.actions.NewGroovyClassAction"
1657             text="Groovy Class" description="Create new Groovy class">
1658       <add-to-group group-id="NewGroup" anchor="after" relative-to-action="NewGroup1"/>
1659     </action>
1660     <action id="Groovy.NewScript" class="org.jetbrains.plugins.groovy.actions.NewScriptAction"
1661             text="Groovy Script" description="Create new Groovy script">
1662       <add-to-group group-id="NewGroup" anchor="last"/>
1663     </action>
1664
1665     <action id="Gant.NewScript" class="org.jetbrains.plugins.groovy.gant.NewGantScriptAction"
1666             text="Gant Script" description="Create new Gant script">
1667       <add-to-group group-id="NewGroup" anchor="last"/>
1668     </action>
1669
1670     <group id="Groovy.Dynamic.Toolbar">
1671       <action id="Groovy.Dynamic.Remove" class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.RemoveDynamicAction"
1672               icon="AllIcons.General.Remove" text="Remove" description="Remove dynamic element"/>
1673       <separator/>
1674       <action id="Groovy.Dynamic.ExpandAll" class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.ExpandAllAction"
1675               icon="AllIcons.Actions.Expandall" text="Expand all" description="Collapse all"/>
1676       <action id="Groovy.Dynamic.CollapseAll" class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.CollapseAllAction"
1677               icon="AllIcons.Actions.Collapseall" text="Collapse all" description="Collapse all"/>
1678     </group>
1679
1680
1681     <action id="ConvertGroovyToJava"
1682             class="org.jetbrains.plugins.groovy.actions.ConvertToJavaAction"
1683             text="Convert to Java"
1684             description="Convert Groovy files to Java">
1685       <add-to-group group-id="RefactoringMenu"/>
1686     </action>
1687
1688     <action id="DumpGroovyControlFlowAction"
1689             class="org.jetbrains.plugins.groovy.actions.DumpGroovyControlFlowAction"
1690             text="dump groovy control flow"
1691             description="" internal="true">
1692       <add-to-group group-id="Internal"/>
1693     </action>
1694
1695     <action id="ExcludeFromStubGeneration"
1696             class="org.jetbrains.plugins.groovy.compiler.ExcludeFromStubGenerationAction"
1697             text="Exclude from stub generation" description="Don't generate Java stubs for this Groovy file on compilation">
1698       <add-to-group group-id="EditorTabPopupMenu" anchor="after" relative-to-action="RenameJavaFileToGroovyFileAction"/>
1699     </action>
1700
1701
1702     <group id="GroovyGenerateGroup1">
1703       <action id="org.jetbrains.plugins.groovy.actions.generate.tostring.GroovyGenerateToStringAction"
1704               class="org.jetbrains.plugins.groovy.actions.generate.tostring.GroovyGenerateToStringAction"
1705               text="to_String()" description="Generate toString() method"/>
1706       <action id="org.jetbrains.plugins.groovy.actions.generate.constructors.GroovyGenerateConstructorAction"
1707               class="org.jetbrains.plugins.groovy.actions.generate.constructors.GroovyGenerateConstructorAction"
1708               text="Constructor" description="Generates constructor"/>
1709       <action id="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterAction"
1710               class="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterAction"
1711               text="Getter" description="Generates getter"/>
1712       <action id="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateSetterAction"
1713               class="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateSetterAction"
1714               text="Setter" description="Generates setter"/>
1715       <action id="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterSetterAction"
1716               class="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterSetterAction"
1717               text="Getter and Setter" description="Generates getter"/>
1718       <action id="org.jetbrains.plugins.groovy.actions.generate.equals.GroovyGenerateEqualsAction"
1719               class="org.jetbrains.plugins.groovy.actions.generate.equals.GroovyGenerateEqualsAction"
1720               text="equals() and hashCode()" description="Action generates equals and hashCode now"/>
1721       <action id="org.jetbrains.plugins.groovy.actions.generate.missing.GroovyGenerateMethodMissingAction"
1722               class="org.jetbrains.plugins.groovy.actions.generate.missing.GroovyGenerateMethodMissingAction"
1723               text="methodMissing()" description="Action generates propertyMissing()"/>
1724       <action id="org.jetbrains.plugins.groovy.actions.generate.missing.GroovyGeneratePropertyMissingAction"
1725               class="org.jetbrains.plugins.groovy.actions.generate.missing.GroovyGeneratePropertyMissingAction"
1726               text="propertyMissing()" description="Action generates propertyMissing()"/>
1727
1728       <add-to-group group-id="GenerateGroup" anchor="after" relative-to-action="JavaGenerateGroup1"/>
1729     </group>
1730
1731     <action id="Groovy.Doc.Generating"
1732             class="org.jetbrains.plugins.groovy.doc.actions.GenerateGroovyDocAction"
1733             text="Generate GroovyDoc..." description="Generating Groovy Documentation"
1734             icon="JetgroovyIcons.Groovy.GroovyDoc">
1735       <add-to-group group-id="ToolsMenu" anchor="last"/>
1736     </action>
1737     
1738     <action id="Groovy.Console"
1739             class="org.jetbrains.plugins.groovy.console.actions.GrNewConsoleAction"
1740             text="Groovy Console..." description="Launch Groovy Console"
1741             icon="JetgroovyIcons.Groovy.Groovy_16x16">
1742       <add-to-group group-id="ToolsMenu" anchor="last"/>
1743     </action>
1744     
1745     <action id="Groovy.Shell"
1746             class="org.jetbrains.plugins.groovy.shell.GroovyShellAction"
1747             text="Groovy Shell..." description="Launch Groovy Shell"
1748             icon="JetgroovyIcons.Groovy.Groovy_16x16">
1749       <add-to-group group-id="ToolsMenu" anchor="last"/>
1750     </action>
1751
1752     <group id="Mvc.Actions" popup="true" class="org.jetbrains.plugins.groovy.mvc.MvcActionGroup">
1753       <action id="Mvc.Upgrade"
1754               class="org.jetbrains.plugins.groovy.mvc.MvcUpgradeAction"
1755               text="Change SDK version" description="Change Grails/Griffon SDK version">
1756       </action>
1757
1758       <action id="Griffon.UpdateDependencies" class="org.jetbrains.plugins.groovy.griffon.UpdateGriffonSettingsAction"
1759               text="Synchronize Griffon settings"
1760               description="Refresh IntelliJ IDEA project structure so that it matches Griffon build settings">
1761       </action>
1762
1763       <action id="Mvc.RunTarget" class="org.jetbrains.plugins.groovy.mvc.actions.MvcRunCommandAction"
1764               text="Run Command" description="Run arbitrary Grails/Griffon command">
1765         <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt G"/>
1766       </action>
1767       <add-to-group group-id="ProjectViewPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/>
1768       <add-to-group group-id="NavbarPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/>
1769       <add-to-group group-id="ToolsMenu" anchor="last"/>
1770     </group>
1771
1772     <action id="groovy.scripting.shell"
1773             class="org.jetbrains.plugins.groovy.ide.GroovyScriptingShellAction"
1774             text="Groovy IDE Scripting Shell"/>
1775   </actions>
1776
1777   <application-components>
1778     <component>
1779       <implementation-class>org.jetbrains.plugins.groovy.gant.GantLoader</implementation-class>
1780     </component>
1781     <component>
1782       <implementation-class>org.jetbrains.plugins.groovy.mvc.MvcPathMacros</implementation-class>
1783     </component>
1784   </application-components>
1785
1786   <project-components>
1787     <component>
1788       <implementation-class>org.jetbrains.plugins.groovy.compiler.GroovyCompilerLoader</implementation-class>
1789     </component>
1790     <component>
1791       <implementation-class>org.jetbrains.plugins.groovy.codeInspection.local.GroovyUnusedImportsPassFactory</implementation-class>
1792     </component>
1793     <component>
1794       <implementation-class>org.jetbrains.plugins.groovy.annotator.GrKeywordAndDeclarationHighlightFactory</implementation-class>
1795     </component>
1796     <component>
1797       <implementation-class>org.jetbrains.plugins.groovy.annotator.GrReferenceHighlighterFactory</implementation-class>
1798     </component>
1799     <component>
1800       <interface-class>org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManager</interface-class>
1801       <implementation-class>org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManagerImpl</implementation-class>
1802     </component>
1803     <component>
1804       <implementation-class>org.jetbrains.plugins.groovy.mvc.MvcModuleStructureSynchronizer</implementation-class>
1805     </component>
1806   </project-components>
1807
1808   <xi:include href="groovy-indexed-property-support.xml" xpointer="xpointer(/idea-plugin/*)"/>
1809   <xi:include href="groovy-logback-support.xml" xpointer="xpointer(/idea-plugin/*)"/>
1810 </idea-plugin>