highlight globally unused groovy classes (IDEA-75803)
[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
17 <idea-plugin url="http://www.jetbrains.net/confluence/display/GRVY/Groovy+Home">
18   <id>org.intellij.groovy</id>
19   <name>Groovy</name>
20   <description>Plugin for Groovy language support, including Groovy++, Grape, Gant and Griffon</description>
21   <version>9.0</version>
22   <vendor logo="/org/jetbrains/plugins/groovy/images/groovy_16x16.png" url="http://www.jetbrains.com">JetBrains Inc.
23   </vendor>
24   <depends>com.intellij.properties</depends>
25
26   <depends optional="true" config-file="groovy-copyright.xml">com.intellij.copyright</depends>
27   <depends optional="true" config-file="intellilang-groovy-support.xml">org.intellij.intelliLang</depends>
28   <depends optional="true">AntSupport</depends>
29
30   <extensionPoints>
31     <extensionPoint name="membersContributor" interface="org.jetbrains.plugins.groovy.lang.resolve.NonCodeMembersContributor"/>
32     <extensionPoint name="defaultImportContributor" interface="org.jetbrains.plugins.groovy.lang.resolve.DefaultImportContributor"/>
33     <extensionPoint name="astTransformContributor" interface="org.jetbrains.plugins.groovy.lang.resolve.AstTransformContributor"/>
34     <extensionPoint name="closureMissingMethodContributor" interface="org.jetbrains.plugins.groovy.lang.resolve.ClosureMissingMethodContributor"/>
35     <extensionPoint name="variableEnhancer" interface="org.jetbrains.plugins.groovy.lang.psi.GrVariableEnhancer"/>
36     <extensionPoint name="referenceTypeEnhancer" interface="org.jetbrains.plugins.groovy.lang.psi.GrReferenceTypeEnhancer"/>
37     <extensionPoint name="typeConverter" interface="org.jetbrains.plugins.groovy.lang.psi.GrTypeConverter"/>
38     <extensionPoint name="expectedTypesContributor" interface="org.jetbrains.plugins.groovy.lang.psi.expectedTypes.GroovyExpectedTypesContributor"/>
39     <extensionPoint name="classSubstitutor" interface="org.jetbrains.plugins.groovy.lang.psi.GrClassSubstitutor"/>
40
41     <extensionPoint name="positionManagerDelegate" interface="org.jetbrains.plugins.groovy.extensions.debugger.ScriptPositionManagerHelper"/>
42     <extensionPoint name="compilerExtension" interface="org.jetbrains.plugins.groovy.compiler.GroovyCompilerExtension"/>
43     <extensionPoint name="scriptTypeDetector" interface="org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector"/>
44
45     <extensionPoint name="namedArgumentProvider" interface="org.jetbrains.plugins.groovy.extensions.GroovyNamedArgumentProvider"/>
46     <extensionPoint name="mapContentProvider" interface="org.jetbrains.plugins.groovy.extensions.GroovyMapContentProvider"/>
47
48     <extensionPoint name="unresolvedHighlightFilter" interface="org.jetbrains.plugins.groovy.extensions.GroovyUnresolvedHighlightFilter"/>
49     <extensionPoint name="unresolvedHighlightFileFilter" interface="org.jetbrains.plugins.groovy.extensions.GroovyUnresolvedHighlightFileFilter"/>
50     <extensionPoint name="configSlurperSupport" interface="org.jetbrains.plugins.groovy.configSlurper.ConfigSlurperSupport"/>
51
52     <extensionPoint name="callExpressionTypeCalculator" interface="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrCallExpressionTypeCalculator"/>
53     <extensionPoint name="classDescriptor" beanClass="org.jetbrains.plugins.groovy.extensions.GroovyClassDescriptor"/>
54     <extensionPoint name="methodDescriptor" beanClass="org.jetbrains.plugins.groovy.extensions.GroovyMethodDescriptorExtension"/>
55
56     <!-- Groovy DSL extension points -->
57     <extensionPoint name="psiEnhancerCategory" interface="org.jetbrains.plugins.groovy.dsl.psi.PsiEnhancerCategory"/>
58     <extensionPoint name="gdslTopLevelProvider" interface="org.jetbrains.plugins.groovy.dsl.dsltop.GdslMembersProvider"/>
59
60     <extensionPoint name="groovyFrameworkConfigNotification" interface="org.jetbrains.plugins.groovy.annotator.GroovyFrameworkConfigNotification"/>
61     <extensionPoint name="groovySourceFolderDetector" interface="org.jetbrains.plugins.groovy.actions.GroovySourceFolderDetector"/>
62
63     <extensionPoint name="mvc.framework" interface="org.jetbrains.plugins.groovy.mvc.MvcFramework"/>
64   </extensionPoints>
65
66   <extensions defaultExtensionNs="org.intellij.groovy">
67     <groovyFrameworkConfigNotification order="last"
68         implementation="org.jetbrains.plugins.groovy.annotator.DefaultGroovyFrameworkConfigNotification"/>
69
70     <membersContributor implementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicMembersContributor"/>
71     <membersContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.GrCollectionTypeMembersProvider"/>
72     <membersContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.LoggingContributor"/>
73     <membersContributor implementation="org.jetbrains.plugins.groovy.spock.SpockMemberContributor"/>
74     <membersContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.MixinMemberContributor"/>
75
76     <astTransformContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.DelegatedMethodsContributor"/>
77     <astTransformContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.AutoExternalizeContributor"/>
78     <astTransformContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.ast.AutoCloneContributor"/>
79     <astTransformContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.ConstructorAnnotationsProcessor"/>
80     <astTransformContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.GrInheritConstructorContributor"/>
81
82     <positionManagerDelegate implementation="org.jetbrains.plugins.groovy.gant.GantPositionManagerHelper"/>
83
84     <mapContentProvider implementation="org.jetbrains.plugins.groovy.configSlurper.ConfigSlurperMapContentProvider"/>
85     <referenceTypeEnhancer implementation="org.jetbrains.plugins.groovy.configSlurper.GroovyMapValueTypeEhancer"/>
86
87     <unresolvedHighlightFilter implementation="org.jetbrains.plugins.groovy.extensions.GroovyUnresolvedReferenceFilterByFile"/>
88
89     <callExpressionTypeCalculator implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.DefaultCallExpressionTypeCalculator" order="last" />
90     <callExpressionTypeCalculator implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrDescriptorReturnTypeCalculator"/>
91     <callExpressionTypeCalculator implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrDGMTypeCalculator"/>
92
93     <scriptTypeDetector implementation="org.jetbrains.plugins.groovy.gant.GantScriptTypeDetector" />
94
95     <namedArgumentProvider implementation="org.jetbrains.plugins.groovy.lang.GroovySourceCodeNamedArgumentProvider" order="last"/>
96     <namedArgumentProvider implementation="org.jetbrains.plugins.groovy.lang.GroovyConstructorNamedArgumentProvider"/>
97     <namedArgumentProvider implementation="org.jetbrains.plugins.groovy.lang.GroovyMethodReturnNamedArgumentProvider" order="last"/>
98
99     <!-- GroovyDSL extensions -->
100     <gdslTopLevelProvider implementation="org.jetbrains.plugins.groovy.dsl.dsltop.GroovyDslDefaultMembers"/>
101     <gdslTopLevelProvider implementation="org.jetbrains.plugins.groovy.lang.resolve.GdkMethodDslProvider"/>
102     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiClassCategory"/>
103     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiElementCategory"/>
104     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiMethodCategory"/>
105     <psiEnhancerCategory implementation="org.jetbrains.plugins.groovy.dsl.psi.PsiExpressionCategory"/>
106
107     <variableEnhancer implementation="org.jetbrains.plugins.groovy.lang.psi.ClosureParameterEnhancer"/>
108
109     <membersContributor implementation="org.jetbrains.plugins.groovy.gant.GantMemberContributor"/>
110
111     <typeConverter implementation="org.jetbrains.plugins.groovy.lang.psi.impl.GrContainerTypeConverter"/>
112
113     <typeConverter implementation="org.jetbrains.plugins.groovy.gpp.GppTypeConverter"/>
114     <expectedTypesContributor implementation="org.jetbrains.plugins.groovy.gpp.GppExpectedTypesContributor"/>
115     <variableEnhancer implementation="org.jetbrains.plugins.groovy.gpp.GppClosureParameterTypeProvider"/>
116     <classSubstitutor implementation="org.jetbrains.plugins.groovy.gpp.GppClassSubstitutor"/>
117     <positionManagerDelegate implementation="org.jetbrains.plugins.groovy.gpp.GppPositionManager"/>
118
119     <mvc.framework implementation="org.jetbrains.plugins.groovy.griffon.GriffonFramework"/>
120     <groovyFrameworkConfigNotification implementation="org.jetbrains.plugins.groovy.griffon.GriffonConfigureNotification"/>
121     <defaultImportContributor implementation="org.jetbrains.plugins.groovy.griffon.GriffonDefaultImportContributor"/>
122
123   </extensions>
124
125   <extensions defaultExtensionNs="com.intellij">
126     <testFramework implementation="org.jetbrains.plugins.groovy.testIntegration.GroovyTestFramework"/>
127     <testCreator language="Groovy" implementationClass="com.intellij.testIntegration.JavaTestCreator"/>
128     <testGenerator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.testIntegration.GroovyTestGenerator"/>
129     <editorNotificationProvider implementation="org.jetbrains.plugins.groovy.annotator.ConfigureGroovyLibraryNotificationProvider"/>
130     <refactoring.introduceParameterMethodUsagesProcessor implementation="org.jetbrains.plugins.groovy.refactoring.introduce.parameter.java2groovy.GroovyIntroduceParameterMethodUsagesProcessor"/>
131     <refactoring.changeSignatureUsageProcessor implementation="org.jetbrains.plugins.groovy.refactoring.changeSignature.GrChangeSignatureUsageProcessor" id="groovyProcessor" order="before javaProcessor"/>
132
133     <constantExpressionEvaluator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.psi.util.GroovyConstantExpressionEvaluator"/>
134     <annotationSupport language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.auxiliary.annotation.GroovyAnnotationSupport"/>
135
136     <expressionConverter language="Groovy" implementationClass="org.jetbrains.plugins.groovy.refactoring.introduce.parameter.GroovyExpressionConverter"/>
137
138     <errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
139     <fileTypeFactory implementation="org.jetbrains.plugins.groovy.GroovyFileTypeLoader"/>
140
141     <projectConfigurable instance="org.jetbrains.plugins.groovy.gant.GantConfigurable"/>
142
143     <library.presentationProvider implementation="org.jetbrains.plugins.groovy.config.GroovyLibraryPresentationProvider"/>
144     <library.presentationProvider implementation="org.jetbrains.plugins.groovy.gpp.GppLibraryPresentationProvider" order="first"/>
145     <library.presentationProvider implementation="org.jetbrains.plugins.groovy.gant.GantLibraryPresentationProvider" order="last"/>
146
147     <projectService serviceInterface="org.jetbrains.plugins.groovy.gant.GantSettings" serviceImplementation="org.jetbrains.plugins.groovy.gant.GantSettings"/>
148
149     <spellchecker.support language="Groovy" implementationClass="org.jetbrains.plugins.groovy.codeInspection.GroovySpellcheckingStrategy"/>
150
151     <colorSettingsPage implementation="org.jetbrains.plugins.groovy.highlighter.GroovyColorsAndFontsPage"/>
152     <framework.type implementation="org.jetbrains.plugins.groovy.config.GroovyFrameworkType"/>
153     <renameHandler implementation="org.jetbrains.plugins.groovy.refactoring.rename.PropertyRenameHandler"/>
154     <renamePsiElementProcessor id="groovyFieldRenameProcessor"
155                                implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameGrFieldProcessor"
156                                order="first"/>
157     <renamePsiElementProcessor id="groovyPropertyRenameProcessor"
158                                implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameGroovyPropertyProcessor"
159                                order="first"/>
160     <renamePsiElementProcessor id="groovyLightElementRenamer"
161                                implementation="org.jetbrains.plugins.groovy.refactoring.rename.GrLightElementRenamer"
162                                order="first, after groovyPropertyRenameProcessor"/>
163     <renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedClassProcessor" order="first"/>
164     <renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedMethodProcessor" order="first"/>
165     <renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedFieldProcessor" order="first"/>
166     <rename.inplace.resolveSnapshotProvider language="Groovy"
167                                             implementationClass="org.jetbrains.plugins.groovy.refactoring.rename.inplace.GroovyResolveSnapshotProvider"/>
168     <nameSuggestionProvider implementation="org.jetbrains.plugins.groovy.refactoring.GroovyNameSuggestionProvider"/>
169
170     <statementUpDownMover implementation="org.jetbrains.plugins.groovy.lang.editor.actions.GroovyStatementMover"/>
171
172     <applicationService serviceInterface="org.jetbrains.plugins.groovy.settings.GroovyApplicationSettings"
173                         serviceImplementation="org.jetbrains.plugins.groovy.settings.GroovyApplicationSettings"/>
174
175     <!-- Groovy language -->
176     <syntaxHighlighter key="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovySyntaxHighlighter"/>
177
178     <annotator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.annotator.GroovyAnnotator"/>
179     <annotator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.dsl.GroovyDslAnnotator"/>
180
181     <lang.psiStructureViewFactory language="Groovy"
182                                   implementationClass="org.jetbrains.plugins.groovy.structure.GroovyStructureViewFactory"/>
183     <lang.parserDefinition language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.parser.GroovyParserDefinition"/>
184     <lang.commenter language="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovyCommenter"/>
185     <lang.foldingBuilder language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.folding.GroovyFoldingBuilder"/>
186     <lang.formatter language="Groovy" implementationClass="org.jetbrains.plugins.groovy.formatter.GroovyFormattingModelBuilder"/>
187     <lang.whiteSpaceFormattingStrategy language="Groovy" implementationClass="org.jetbrains.plugins.groovy.formatter.GroovyWhiteSpaceFormattingStrategy"/>
188
189     <enterHandlerDelegate implementation="org.jetbrains.plugins.groovy.lang.editor.actions.GroovyEnterHandler"
190                           order="before EnterBetweenBracesHandler"/>
191     <typedHandler implementation="org.jetbrains.plugins.groovy.lang.editor.actions.GStringTypedActionHandler"/>
192     <backspaceHandlerDelegate implementation="org.jetbrains.plugins.groovy.lang.editor.actions.GStringBackspaceHandlerDelegate"/>
193
194     <typedHandler implementation="org.jetbrains.plugins.groovy.lang.editor.actions.GroovyTypedHandler"/>
195     <backspaceHandlerDelegate implementation="org.jetbrains.plugins.groovy.lang.editor.actions.GroovyBackspaceHandler"/>
196
197     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Generic"/>
198     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Expression"/>
199     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Statement"/>
200     <liveTemplateContext implementation="org.jetbrains.plugins.groovy.template.GroovyTemplateContextType$Declaration"/>
201
202     <defaultLiveTemplatesProvider implementation="org.jetbrains.plugins.groovy.template.GroovyTemplatesProvider"/>
203
204     <liveTemplateOptionalProcessor implementation="org.jetbrains.plugins.groovy.template.GroovyShortenFQNamesProcessor"/>
205     <variableTypeCalculator implementation="org.jetbrains.plugins.groovy.template.GroovyVariableTypeCalculator"/>
206
207     <gotoSymbolContributor implementation="org.jetbrains.plugins.groovy.gotoclass.GroovyGoToSymbolContributor"/>
208     <lang.refactoringSupport language="Groovy"
209                              implementationClass="org.jetbrains.plugins.groovy.refactoring.GroovyRefactoringSupportProvider"/>
210     <lang.surroundDescriptor language="Groovy"
211                              implementationClass="org.jetbrains.plugins.groovy.lang.surroundWith.GroovySurroundDescriptor"/>
212     <lang.findUsagesProvider language="Groovy" implementationClass="org.jetbrains.plugins.groovy.findUsages.GroovyFindUsagesProvider"/>
213     <readWriteAccessDetector implementation="org.jetbrains.plugins.groovy.findUsages.GroovyReadWriteAccessDetector" order="before java"/>
214     <findUsagesHandlerFactory implementation="org.jetbrains.plugins.groovy.findUsages.GroovyFindUsagesHandlerFactory"/>
215     <lang.braceMatcher language="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovyBraceMatcher"/>
216     <lang.importOptimizer language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.editor.GroovyImportOptimizer"/>
217     <lang.documentationProvider language="Groovy"
218                                 implementationClass="org.jetbrains.plugins.groovy.lang.documentation.GroovyDocumentationProvider"/>
219     <lang.smartEnterProcessor language="Groovy"
220                               implementationClass="org.jetbrains.plugins.groovy.lang.completion.smartEnter.GroovySmartEnterProcessor"/>
221     <codeInsight.overrideMethod language="Groovy"
222                                 implementationClass="org.jetbrains.plugins.groovy.overrideImplement.GroovyOverrideMethodsHandler"/>
223     <codeInsight.implementMethod language="Groovy"
224                                  implementationClass="org.jetbrains.plugins.groovy.overrideImplement.GroovyImplementMethodsHandler"/>
225
226     <methodImplementor implementation="org.jetbrains.plugins.groovy.overrideImplement.GroovyMethodImplementor"/>
227     <codeInsight.parameterInfo language="Groovy"
228                                implementationClass="org.jetbrains.plugins.groovy.lang.parameterInfo.GroovyParameterInfoHandler"/>
229     <refactoring.inlineHandler language="Groovy" implementationClass="org.jetbrains.plugins.groovy.refactoring.inline.GroovyInlineHandler"/>
230     <inlineActionHandler implementation="org.jetbrains.plugins.groovy.refactoring.inline.GroovyInlineLocalHandler"/>
231
232     <refactoring.moveClassHandler implementation="org.jetbrains.plugins.groovy.refactoring.move.MoveGroovyClassHandler"/>
233     <moveFileHandler implementation="org.jetbrains.plugins.groovy.refactoring.move.MoveGroovyFileHandler"/>
234     <refactoring.moveMemberHandler language="Groovy" implementationClass="org.jetbrains.plugins.groovy.refactoring.move.MoveGroovyMemberHandler"/>
235
236     <refactoring.helper implementation="org.jetbrains.plugins.groovy.refactoring.GroovyImportOptimizerRefactoringHelper"/>
237     <codeInsight.lineMarkerProvider language="Groovy"
238                                     implementationClass="org.jetbrains.plugins.groovy.codeInsight.GroovyLineMarkerProvider"/>
239     <codeInsight.gotoSuper language="Groovy" implementationClass="org.jetbrains.plugins.groovy.codeInsight.navigation.actions.GroovyGotoSuperHandler"/>
240     <lookup.charFilter implementation="org.jetbrains.plugins.groovy.lang.completion.GroovyReferenceCharFilter"/>
241     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovyNoVariantsDelegator" id="groovyBasic2ClassName" order="first, after liveTemplates"/>
242     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovyCompletionContributor" id="groovyBasic"/>
243     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovySmartCompletionContributor"/>
244     <completion.contributor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GrMethodMergingContributor"
245                             id="grMethodMerger" order="before methodMerger"/>
246
247     <completion.confidence language="Groovy" implementationClass="com.intellij.codeInsight.completion.UnfocusedNameIdentifier" id="groovyNameIdentifier"/>
248     <completion.confidence language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.completion.GroovyCompletionConfidence" id="groovyAdvanced" order="after groovyNameIdentifier"/>
249     <completion.confidence language="Groovy" implementationClass="com.intellij.codeInsight.completion.UnfocusedComments" id="groovyComments"/>
250     <completion.confidence language="Groovy" implementationClass="com.intellij.codeInsight.completion.AlwaysFocusLookup" id="groovyTrue" order="last"/>
251
252     <weigher key="completion" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrWithWeigher" id="groovyWithWeigher" order="before stats" />
253     <weigher key="completion" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrKindWeigher" id="groovyKindWeigher" order="before stats, after groovyWithWeigher" />
254
255     <weigher key="proximity" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrReferenceListWeigher"
256              id="groovyReferenceListWeigher" order="before openedInEditor" />
257
258     <topLevelClassProvider implementation="org.jetbrains.plugins.groovy.debugger.GroovyTopLevelParentClassProvider"/>
259
260     <debuggerClassFilterProvider implementation="org.jetbrains.plugins.groovy.debugger.filters.GroovyDebuggerClassFilterProvider"/>
261
262     <useScopeEnlarger implementation="org.jetbrains.plugins.groovy.lang.psi.impl.search.GrPrivateFieldScopeEnlarger"/>
263
264     <debuggerEditorTextProvider language="Groovy" implementationClass="org.jetbrains.plugins.groovy.debugger.GroovyEditorTextProvider"/>
265
266     <xdebugger.settings implementation="org.jetbrains.plugins.groovy.debugger.filters.GroovyDebuggerSettings"/>
267     <langCodeStyleSettingsProvider implementation="org.jetbrains.plugins.groovy.formatter.GroovyLanguageCodeStyleSettingsProvider"/>
268     <codeStyleSettingsProvider implementation="org.jetbrains.plugins.groovy.formatter.GroovyCodeStyleSettingsProvider"/>
269
270     <typeHierarchyProvider language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.GroovyTypeHierarchyProvider"/>
271
272     <lang.unwrapDescriptor language="Groovy" implementationClass="org.jetbrains.plugins.groovy.unwrap.GroovyUnwrapDescriptor" />
273
274     <lang.elementManipulator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral"
275                              implementationClass="org.jetbrains.plugins.groovy.lang.resolve.GroovyStringLiteralManipulator"/>
276     <lang.elementManipulator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgumentLabel"
277                              implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.statements.arguments.GrArgumentLabelManipulator"/>
278
279     <directClassInheritorsSearch implementation="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyDirectInheritorsSearcher"/>
280
281     <pom.declarationSearcher implementation="org.jetbrains.plugins.groovy.lang.psi.GroovyDeclarationSearcher"/>
282
283     <pom.declarationSearcher implementation="org.jetbrains.plugins.groovy.spock.SpockPomDeclarationSearcher"/>
284
285     <typeDeclarationProvider implementation="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyTypeDeclarationProvider" order="first"/>
286
287     <!--Run/debug-->
288     <configurationType implementation="org.jetbrains.plugins.groovy.runner.GroovyScriptRunConfigurationType"/>
289     <configurationProducer implementation="org.jetbrains.plugins.groovy.runner.GroovyScriptRunConfigurationProducer"/>
290
291     <quoteHandler fileType="Groovy" className="org.jetbrains.plugins.groovy.lang.editor.GroovyQuoteHandler"/>
292
293     <indexPatternBuilder implementation="org.jetbrains.plugins.groovy.util.GroovyIndexPatternBuilder"/>
294     <todoIndexer filetype="Groovy" implementationClass="org.jetbrains.plugins.groovy.highlighter.GroovyTodoIndexer"/>
295
296     <basicWordSelectionFilter implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyWordSelectionFilter"/>
297     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyLiteralSelectioner"/>
298     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyBlockStatementsSelectioner"/>
299     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyTypeCastSelectioner"/>
300     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyDocParamsSelectioner"/>
301     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyArgListSelectioner"/>
302     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyGStringSelectioner" order="before wordSelectioner"/>
303     <extendWordSelectionHandler implementation="org.jetbrains.plugins.groovy.editor.selection.GroovyParameterListSelectioner"/>
304
305     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.AccessorMethodReferencesSearcher"/>
306     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.MethodLateBoundReferencesSearcher"/>
307     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GroovyConstructorUsagesSearcher"/>
308     <methodReferencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GroovyReflectedMethodReferenceSearcher"/>
309     <annotatedElementsSearch implementation="org.jetbrains.plugins.groovy.findUsages.AnnotatedMembersSearcher"/>
310     <superMethodsSearch implementation="org.jetbrains.plugins.groovy.findUsages.GDKSuperMethodSearcher"/>
311     <definitionsSearch implementation="org.jetbrains.plugins.groovy.findUsages.GroovyImplementationSearch"/>
312
313     <targetElementEvaluator language="Groovy" implementationClass="org.jetbrains.plugins.groovy.codeInsight.GroovyTargetElementEvaluator"/>
314
315     <fileTemplateGroup implementation="org.jetbrains.plugins.groovy.actions.GroovyTemplatesFactory"/>
316
317     <attachSourcesProvider implementation="org.jetbrains.plugins.groovy.ivy.IvyAttachSourceProvider" />
318
319     <compilerSettingsFactory implementation="org.jetbrains.plugins.groovy.compiler.GroovyCompilerSettingsFactory"/>
320
321     <stubElementTypeHolder class="org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes"/>
322     <!--Stubs index-->
323     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrFullClassNameIndex"/>
324     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrFullScriptNameIndex"/>
325     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrFieldNameIndex"/>
326     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrMethodNameIndex"/>
327     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrAnnotationMethodNameIndex"/>
328     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrAnnotatedMemberIndex"/>
329     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrScriptClassNameIndex"/>
330     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrDirectInheritorsIndex"/>
331     <stubIndex implementation="org.jetbrains.plugins.groovy.lang.psi.stubs.index.GrAnonymousClassIndex"/>
332
333     <referencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.ConstructorReferencesSearcher"/>
334     <referencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.GrAliasedImportedElementSearcher"/>
335     <referencesSearch implementation="org.jetbrains.plugins.groovy.findUsages.AccessorReferencesSearcher"/>
336
337     <antCustomCompiler implementation="org.jetbrains.plugins.groovy.ant.GroovyAntCustomCompilerProvider"/>
338
339     <project.converterProvider implementation="org.jetbrains.plugins.groovy.config.GroovyModuleConverterProvider"/>
340
341     <iconProvider implementation="org.jetbrains.plugins.groovy.GroovyIconProvider"/>
342
343     <projectService serviceInterface="org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory"
344                     serviceImplementation="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiElementFactoryImpl"/>
345     <projectService serviceInterface="org.jetbrains.plugins.groovy.compiler.GroovyCompilerConfiguration"
346                     serviceImplementation="org.jetbrains.plugins.groovy.compiler.GroovyCompilerConfiguration"/>
347
348     <psi.referenceContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.providers.GroovyReferenceContributor"/>
349
350     <resolveScopeProvider implementation="org.jetbrains.plugins.groovy.lang.resolve.GroovyResolveScopeProvider"/>
351
352     <java.elementFinder implementation="org.jetbrains.plugins.groovy.lang.psi.impl.javaView.GroovyClassFinder"/>
353     <java.elementFinder implementation="org.jetbrains.plugins.groovy.gant.GantClassFinder"/>
354     <java.shortNamesCache implementation="org.jetbrains.plugins.groovy.lang.stubs.GroovyShortNamesCache"/>
355
356     <projectService serviceInterface="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager"
357                     serviceImplementation="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager"/>
358
359     <problemFileHighlightFilter implementation="org.jetbrains.plugins.groovy.GroovyProblemFileHighlightFilter"/>
360
361     <renameInputValidator implementation="org.jetbrains.plugins.groovy.GroovyRenameInputValidator"/>
362     <lang.namesValidator implementationClass="org.jetbrains.plugins.groovy.lang.GroovyNamesValidator" language="Groovy"/>
363
364     <fileBasedIndex implementation="org.jetbrains.plugins.groovy.dsl.GroovyDslFileIndex"/>
365
366     <patterns.patternClass className="org.jetbrains.plugins.groovy.lang.psi.patterns.GroovyPatterns" alias="groovy"/>
367
368     <stacktrace.fold substring="at org.codehaus.groovy."/>
369     <stacktrace.fold substring="at groovy."/>
370     <stacktrace.fold substring="at org.codehaus.groovy.runtime.DefaultGroovyMethods." negate="true"/>
371     <stacktrace.fold substring="at org.codehaus.groovy.vmplugin.v5.PluginDefaultGroovyMethods." negate="true"/>
372     <stacktrace.fold substring="at org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport." negate="true"/>
373
374     <projectStructureDetector implementation="org.jetbrains.plugins.groovy.GroovySourceRootDetector"/>
375
376     <generation.topLevelFactory language="Groovy" implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.GroovyFactoryProvider" />
377
378     <postStartupActivity implementation="org.jetbrains.plugins.groovy.mvc.MvcProjectWithoutLibraryNotificator" />
379
380     <treeCopyHandler implementation="org.jetbrains.plugins.groovy.lang.GroovyChangeUtilSupport"/>
381
382     <copyPastePreProcessor implementation="org.jetbrains.plugins.groovy.lang.editor.GroovyLiteralCopyPasteProcessor"/>
383     <copyPastePostProcessor implementation="org.jetbrains.plugins.groovy.lang.editor.GroovyReferenceCopyPasteProcessor"/>
384
385     <specialTool shortName="GroovyUnusedDeclaration" displayName="Unused declaration"
386                  groupName="Declaration Redundancy" enabledByDefault="true" level="WARNING"
387                  implementationClass="org.jetbrains.plugins.groovy.codeInspection.GroovyUnusedDeclarationInspection"/>
388
389     <localInspection language="Groovy" groupPath="Groovy" shortName="SecondUnsafeCall" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
390                      key="second.unsafe.call" groupName="Probable bugs" enabledByDefault="true" level="WARNING"
391                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.secondUnsafeCall.SecondUnsafeCallInspection"/>
392     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnusedAssignment" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
393                      key="unused.assignment" groupKey="groovy.dfa.issues" enabledByDefault="true" level="WARNING"
394                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.unusedDef.UnusedDefInspection"/>
395     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyVariableNotAssigned" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
396                      key="unassigned.access" groupKey="groovy.dfa.issues" enabledByDefault="true" level="WARNING"
397                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.unassignedVariable.UnassignedVariableAccessInspection"/>
398     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMissingReturnStatement" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
399                      key="no.return.display.name" groupKey="groovy.dfa.issues" enabledByDefault="true" level="WARNING"
400                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.noReturnMethod.MissingReturnInspection"/>
401     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAssignabilityCheck" displayName="Incompatible type assignments" groupName="Assignment issues"
402                      enabledByDefault="true" level="WARNING"
403                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignabilityCheckInspection"/>
404     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyResultOfAssignmentUsed" displayName="Result of assignment used" groupName="Assignment issues"
405                      enabledByDefault="false" level="WARNING"
406                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyResultOfAssignmentUsedInspection"/>
407     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAssignmentCanBeOperatorAssignment" displayName="Assignment replaceable with operator assignment"
408                      groupName="Assignment issues" enabledByDefault="false" level="WARNING"
409                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignmentCanBeOperatorAssignmentInspection"/>
410     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAssignmentToForLoopParameter" displayName="Assignment to for-loop parameter"
411                      groupName="Assignment issues" enabledByDefault="false" level="WARNING"
412                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignmentToForLoopParameterInspection"/>
413     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAssignmentToMethodParameter" displayName="Assignment to method parameter"
414                      groupName="Assignment issues" enabledByDefault="false" level="WARNING"
415                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyAssignmentToMethodParameterInspection"/>
416     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedAssignment" displayName="Nested assignment" groupName="Assignment issues"
417                      enabledByDefault="false" level="WARNING"
418                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyNestedAssignmentInspection"/>
419     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySillyAssignment" displayName="Silly assignment" groupName="Assignment issues" enabledByDefault="true"
420                      level="WARNING"
421                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovySillyAssignmentInspection"/>
422     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUncheckedAssignmentOfMemberOfRawType" displayName="Unchecked assignment from members of raw type"
423                      groupName="Assignment issues" enabledByDefault="true" level="WARNING"
424                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.assignment.GroovyUncheckedAssignmentOfMemberOfRawTypeInspection"/>
425     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyContinueOrBreakFromFinallyBlock" displayName="'continue' or 'break' inside 'finally' block"
426                      groupName="Error handling" enabledByDefault="false" level="WARNING"
427                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyContinueOrBreakFromFinallyBlockInspection"/>
428     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyReturnFromFinallyBlock" displayName="'return' inside 'finally' block" groupName="Error handling"
429                      enabledByDefault="false" level="WARNING"
430                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyReturnFromFinallyBlockInspection"/>
431     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyThrowFromFinallyBlock" displayName="'throw' inside 'finally' block" groupName="Error handling"
432                      enabledByDefault="false" level="WARNING"
433                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyThrowFromFinallyBlockInspection"/>
434     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyCatchBlock" displayName="Empty 'catch' block" groupName="Error handling" enabledByDefault="false"
435                      level="WARNING"
436                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyEmptyCatchBlockInspection"/>
437     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyFinallyBlock" displayName="Empty 'finally' block" groupName="Error handling"
438                      enabledByDefault="false" level="WARNING"
439                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyEmptyFinallyBlockInspection"/>
440     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyTryBlock" displayName="Empty 'try' block" groupName="Error handling" enabledByDefault="false"
441                      level="WARNING"
442                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyEmptyTryBlockInspection"/>
443     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnusedCatchParameter" displayName="Unused catch parameter" groupName="Error handling"
444                      enabledByDefault="true" level="WARNING"
445                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.exception.GroovyUnusedCatchParameterInspection"/>
446     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyBreak" displayName="Break statement" groupName="Control Flow" enabledByDefault="false" level="WARNING"
447                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyBreakInspection"/>
448     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyContinue" displayName="Continue statement" groupName="Control Flow" enabledByDefault="false"
449                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyContinueInspection"/>
450     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnreachableStatement" displayName="Unreachable Statement" groupName="Validity issues"
451                      enabledByDefault="true" level="WARNING"
452                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.validity.GroovyUnreachableStatementInspection"/>
453     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyLoopStatementThatDoesntLoop" displayName="Loop statement that doesn't loop" groupName="Control Flow"
454                      enabledByDefault="false" level="WARNING"
455                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyLoopStatementThatDoesntLoopInspection"/>
456     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditionalWithIdenticalBranches" displayName="Conditional expression with identical branches"
457                      groupName="Control Flow" enabledByDefault="true" level="WARNING"
458                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConditionalWithIdenticalBranchesInspection"/>
459     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditionalCanBeElvis" displayName="Conditional expression can be elvis" groupName="Control Flow"
460                      enabledByDefault="false" level="WARNING"
461                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConditionalCanBeElvisInspection"/>
462     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditionalCanBeConditionalCall" displayName="Conditional expression can be conditional call"
463                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
464                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConditionalCanBeConditionalCallInspection"/>
465     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyIfStatementWithIdenticalBranches" displayName="If statement with identical branches"
466                      groupName="Control Flow" enabledByDefault="true" level="WARNING"
467                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyIfStatementWithIdenticalBranchesInspection"/>
468     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyIfStatementWithTooManyBranches" displayName="If statement with too many branches"
469                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
470                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyIfStatementWithTooManyBranchesInspection"/>
471     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyFallthrough" displayName="Fallthrough in switch statement" groupName="Control Flow"
472                      enabledByDefault="true" level="WARNING"
473                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyFallthroughInspection"/>
474     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnnecessaryContinue" displayName="Unnecessary 'continue' statement" groupName="Control Flow"
475                      enabledByDefault="true" level="WARNING"
476                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyUnnecessaryContinueInspection"/>
477     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnnecessaryReturn" displayName="Unnecessary 'return' statement" groupName="Control Flow"
478                      enabledByDefault="true" level="WARNING"
479                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyUnnecessaryReturnInspection"/>
480     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySwitchStatementWithNoDefault" displayName="Switch statement with no default case"
481                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
482                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovySwitchStatementWithNoDefaultInspection"/>
483     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyReturnFromClosureCanBeImplicit" displayName="'return' statement can be implicit"
484                      groupName="Control Flow" enabledByDefault="false" level="WARNING"
485                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyReturnFromClosureCanBeImplicitInspection"/>
486     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyTrivialConditional" displayName="Redundant conditional expression" groupName="Control Flow"
487                      enabledByDefault="true" level="WARNING"
488                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyTrivialConditionalInspection"/>
489     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstantConditional" displayName="Constant conditional expression" groupName="Control Flow"
490                      enabledByDefault="true" level="WARNING"
491                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConstantConditionalInspection"/>
492     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstantIfStatement" displayName="Constant if statement" groupName="Control Flow"
493                      enabledByDefault="true" level="WARNING"
494                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyConstantIfStatementInspection"/>
495     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyTrivialIf" displayName="Redundant 'if' statement" groupName="Control Flow" enabledByDefault="true"
496                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.control.GroovyTrivialIfInspection"/>
497     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAccessToStaticFieldLockedOnInstance" displayName="Access to static field locked on instance data"
498                      groupName="Threading issues" enabledByDefault="true" level="WARNING"
499                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyAccessToStaticFieldLockedOnInstanceInspection"/>
500     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDoubleCheckedLocking" displayName="Double-checked locking" groupName="Threading issues"
501                      enabledByDefault="false" level="WARNING"
502                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyDoubleCheckedLockingInspection"/>
503     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnconditionalWait" displayName="Unconditional 'wait' call" groupName="Threading issues"
504                      enabledByDefault="false" level="WARNING"
505                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyUnconditionalWaitInspection"/>
506     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyPublicFieldAccessedInSynchronizedContext"
507                      displayName="Non-private field accessed in synchronized context" groupName="Threading issues" enabledByDefault="false"
508                      level="WARNING"
509                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyPublicFieldAccessedInSynchronizedContextInspection"/>
510     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyBusyWait" displayName="Busy wait" groupName="Threading issues" enabledByDefault="false"
511                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyBusyWaitInspection"/>
512     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptySyncBlock" displayName="Empty 'synchronized' block" groupName="Threading issues"
513                      enabledByDefault="false" level="WARNING"
514                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyEmptySyncBlockInspection"/>
515     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizationOnThis" displayName="Synchronization on 'this'" groupName="Threading issues"
516                      enabledByDefault="false" level="WARNING"
517                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizationOnThisInspection"/>
518     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizedMethod" displayName="Synchronized method" groupName="Threading issues"
519                      enabledByDefault="false" level="WARNING"
520                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizedMethodInspection"/>
521     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedSynchronizedStatement" displayName="Nested 'synchronized' statement"
522                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
523                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyNestedSynchronizedStatementInspection"/>
524     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyThreadStopSuspendResume" displayName="Call to Thread.stop(), Thread.suspend(), or Thread.resume()"
525                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
526                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyThreadStopSuspendResumeInspection"/>
527     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySystemRunFinalizersOnExit" displayName="Call to System.runFinalizersOnExit()"
528                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
529                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySystemRunFinalizersOnExitInspection"/>
530     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNotifyWhileNotSynchronized" displayName="'notify()' or 'notifyAll()' while not synced"
531                      groupName="Threading issues" enabledByDefault="false" level="WARNING"
532                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyNotifyWhileNotSynchronizedInspection"/>
533     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyWaitCallNotInLoop" displayName="'wait()' not in loop" groupName="Threading issues"
534                      enabledByDefault="false" level="WARNING"
535                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyWaitCallNotInLoopInspection"/>
536     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyWaitWhileNotSynchronized" displayName="'wait()' while not synced" groupName="Threading issues"
537                      enabledByDefault="false" level="WARNING"
538                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyWaitWhileNotSynchronizedInspection"/>
539     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizationOnNonFinalField" displayName="Synchronization on non-final field"
540                      groupName="Threading issues" enabledByDefault="true" level="WARNING"
541                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizationOnNonFinalFieldInspection"/>
542     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySynchronizationOnVariableInitializedWithLiteral"
543                      displayName="Synchronization on variable initialized with literal" groupName="Threading issues"
544                      enabledByDefault="true" level="WARNING"
545                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovySynchronizationOnVariableInitializedWithLiteralInspection"/>
546     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnsynchronizedMethodOverridesSynchronizedMethod"
547                      displayName="Unsynchronized method overrides synchronized method" groupName="Threading issues" enabledByDefault="true"
548                      level="WARNING"
549                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyUnsynchronizedMethodOverridesSynchronizedMethodInspection"/>
550     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyWhileLoopSpinsOnField" displayName="While loop spins on field" groupName="Threading issues"
551                      enabledByDefault="false" level="WARNING"
552                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.threading.GroovyWhileLoopSpinsOnFieldInspection"/>
553     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMethodParameterCount" displayName="Method with too many parameters" groupName="Method Metrics"
554                      enabledByDefault="false" level="WARNING"
555                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyMethodParameterCountInspection"/>
556     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyComplexMethod" displayName="Overly complex method" groupName="Method Metrics"
557                      enabledByDefault="false" level="WARNING"
558                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyOverlyComplexMethodInspection"/>
559     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyLongMethod" displayName="Overly long method" groupName="Method Metrics" enabledByDefault="false"
560                      level="WARNING"
561                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyOverlyLongMethodInspection"/>
562     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyNestedMethod" displayName="Overly nested method" groupName="Method Metrics"
563                      enabledByDefault="false" level="WARNING"
564                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyOverlyNestedMethodInspection"/>
565     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMethodWithMoreThanThreeNegations" displayName="Method with more than three negations"
566                      groupName="Method Metrics" enabledByDefault="false" level="WARNING"
567                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyMethodWithMoreThanThreeNegationsInspection"/>
568     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMultipleReturnPointsPerMethod" displayName="Method with multiple return points"
569                      groupName="Method Metrics" enabledByDefault="false" level="WARNING"
570                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyMultipleReturnPointsPerMethodInspection"/>
571     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedSwitch" displayName="Nested switch statement" groupName="Potentially confusing code constructs"
572                      enabledByDefault="false" level="WARNING"
573                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNestedSwitchInspection"/>
574     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConditional" displayName="Conditional expression" groupName="Potentially confusing code constructs"
575                      enabledByDefault="false" level="WARNING"
576                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyConditionalInspection"/>
577     <localInspection language="Groovy" groupPath="Groovy" shortName="GrFieldAlreadyDefined" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
578                      key="field.already.defined" groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
579                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GrFieldAlreadyDefinedInspection"/>
580     <localInspection language="Groovy" groupPath="Groovy" shortName="ClashingGetters" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
581                      key="clashing.getters" groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
582                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.ClashingGettersInspection"/>
583     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNestedConditional" displayName="Nested conditional expression"
584                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
585                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNestedConditionalInspection"/>
586     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNegatedConditional" displayName="Negated conditional expression"
587                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
588                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNegatedConditionalInspection"/>
589     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInArgumentCheck" displayName="Incompatible 'in' argument types"
590                      enabledByDefault="false" groupName="Probable bugs" level="WARNING"
591                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyInArgumentCheckInspection"/>
592     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNegatedIf" displayName="Negated if condition expression"
593                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
594                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyNegatedIfInspection"/>
595     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyResultOfIncrementOrDecrementUsed" displayName="Result of increment or decrement used"
596                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
597                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyResultOfIncrementOrDecrementUsedInspection"/>
598     <localInspection language="Groovy" groupPath="Groovy" shortName="UnnecessaryQualifiedReference" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
599                      key="unnecessary.qualified.reference" groupName="Potentially confusing code constructs" enabledByDefault="false"
600                      level="WARNING"
601                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.UnnecessaryQualifiedReferenceInspection"/>
602     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEmptyStatementBody" displayName="Statement with empty body"
603                      groupName="Potentially confusing code constructs" enabledByDefault="true" level="WARNING"
604                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyEmptyStatementBodyInspection"/>
605     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyPointlessBoolean" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
606                      key="pointless.boolean.display.name" groupName="Potentially confusing code constructs" enabledByDefault="true"
607                      level="WARNING"
608                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyPointlessBooleanInspection"/>
609     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyPointlessArithmetic" displayName="Pointless arithmetic expression"
610                      groupName="Potentially confusing code constructs" enabledByDefault="true" level="WARNING"
611                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyPointlessArithmeticInspection"/>
612     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDoubleNegation" displayName="Double negation" groupName="Potentially confusing code constructs"
613                      enabledByDefault="true" level="WARNING"
614                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyDoubleNegationInspection"/>
615     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyComplexArithmeticExpression" displayName="Overly complex arithmetic expression"
616                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
617                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyOverlyComplexArithmeticExpressionInspection"/>
618     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOverlyComplexBooleanExpression" displayName="Overly complex boolean expression"
619                      groupName="Potentially confusing code constructs" enabledByDefault="false" level="WARNING"
620                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyOverlyComplexBooleanExpressionInspection"/>
621     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyOctalInteger" displayName="Octal integer" groupName="Potentially confusing code constructs"
622                      enabledByDefault="false" level="WARNING"
623                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.confusing.GroovyOctalIntegerInspection"/>
624     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDuplicateSwitchBranch" displayName="Duplicate switch case" groupName="Validity issues"
625                      enabledByDefault="true" level="WARNING"
626                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.validity.GroovyDuplicateSwitchBranchInspection"/>
627     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyNonShortCircuitBoolean" displayName="Non short-circuit boolean" groupName="Probable bugs"
628                      enabledByDefault="false" level="WARNING"
629                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyNonShortCircuitBooleanInspection"/>
630     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInfiniteLoopStatement" displayName="Infinite loop statement" groupName="Probable bugs"
631                      enabledByDefault="true" level="WARNING"
632                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyInfiniteLoopStatementInspection"/>
633     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInfiniteRecursion" displayName="Infinite recursion" groupName="Probable bugs" enabledByDefault="true"
634                      level="WARNING"
635                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyInfiniteRecursionInspection"/>
636     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDivideByZero" displayName="Divide by zero" groupName="Probable bugs" enabledByDefault="true"
637                      level="WARNING" implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyDivideByZeroInspection"/>
638     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyResultOfObjectAllocationIgnored" displayName="Result of object allocation ignored"
639                      groupName="Probable bugs" enabledByDefault="true" level="WARNING"
640                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyResultOfObjectAllocationIgnoredInspection"/>
641     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAccessibility" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
642                      key="access.to.inaccessible.element" groupName="Probable bugs" enabledByDefault="true" level="WARNING"
643                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyAccessibilityInspection"/>
644     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstructorNamedArguments" displayName="Named arguments of constructor call" groupName="Probable bugs"
645                      enabledByDefault="true" level="WARNING"
646                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyConstructorNamedArgumentsInspection"/>
647     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyDocCheck" displayName="GroovyDoc issues" groupName="Probable bugs"
648                      enabledByDefault="true" level="ERROR"
649                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyDocCheckInspection"/>
650     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyRangeTypeCheck" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
651                      key="incorrect.range.argument" groupName="Probable bugs" enabledByDefault="false" level="WARNING"
652                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyRangeTypeCheckInspection"/>
653     <localInspection language="Groovy" groupPath="Groovy" shortName="NewInstanceOfSingleton" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
654                      key="new.instance.of.singleton" groupName="Potentially confusing code constructs" enabledByDefault="true" level="WARNING"
655                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.NewInstanceOfSingletonInspection"/>
656     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyLabeledStatement" bundle="org.jetbrains.plugins.groovy.codeInspection.GroovyInspectionBundle"
657                      key="check.labeled.statement" groupName="Probable bugs" enabledByDefault="true" level="WARNING"
658                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.bugs.GroovyLabeledStatementInspection"/>
659     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyClassNamingConvention" displayName="Class naming convention" groupName="Naming Conventions"
660                      enabledByDefault="false" level="WARNING"
661                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyClassNamingConventionInspection"/>
662     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInterfaceNamingConvention" displayName="Interface naming convention" groupName="Naming Conventions"
663                      enabledByDefault="false" level="WARNING"
664                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyInterfaceNamingConventionInspection"/>
665     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyAnnotationNamingConvention" displayName="Annotation naming convention" groupName="Naming Conventions"
666                      enabledByDefault="false" level="WARNING"
667                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyAnnotationNamingConventionInspection"/>
668     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyEnumerationNamingConvention" displayName="Enumeration naming convention"
669                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
670                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyEnumerationNamingConventionInspection"/>
671     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyLocalVariableNamingConvention" displayName="Local variable naming convention"
672                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
673                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyLocalVariableNamingConventionInspection"/>
674     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyStaticMethodNamingConvention" displayName="Static method naming convention"
675                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
676                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyStaticMethodNamingConventionInspection"/>
677     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyStaticVariableNamingConvention" displayName="Static variable naming convention"
678                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
679                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyStaticVariableNamingConventionInspection"/>
680     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInstanceMethodNamingConvention" displayName="Instance method naming convention"
681                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
682                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyInstanceMethodNamingConventionInspection"/>
683     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyInstanceVariableNamingConvention" displayName="Instance variable naming convention"
684                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
685                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyInstanceVariableNamingConventionInspection"/>
686     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyConstantNamingConvention" displayName="Constant naming convention" groupName="Naming Conventions"
687                      enabledByDefault="false" level="WARNING"
688                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyConstantNamingConventionInspection"/>
689     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyParameterNamingConvention" displayName="Method parameter naming convention"
690                      groupName="Naming Conventions" enabledByDefault="false" level="WARNING"
691                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.naming.GroovyParameterNamingConventionInspection"/>
692     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyGetterCallCanBePropertyAccess" displayName="Getter call can be property access"
693                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
694                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyGetterCallCanBePropertyAccessInspection"/>
695     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySetterCallCanBePropertyAccess" displayName="Setter call can be property access"
696                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
697                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovySetterCallCanBePropertyAccessInspection"/>
698     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMapGetCanBeKeyedAccess" displayName="Call to Map.get can be keyed access"
699                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
700                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyMapGetCanBeKeyedAccessInspection"/>
701     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyMapPutCanBeKeyedAccess" displayName="Call to Map.put can be keyed access"
702                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
703                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyMapPutCanBeKeyedAccessInspection"/>
704     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyListGetCanBeKeyedAccess" displayName="Call to List.get can be keyed access"
705                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
706                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyListGetCanBeKeyedAccessInspection"/>
707     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyListSetCanBeKeyedAccess" displayName="Call to List.set can be keyed access"
708                      groupName="GPath inspections" enabledByDefault="false" level="WARNING"
709                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.gpath.GroovyListSetCanBeKeyedAccessInspection"/>
710     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUntypedAccess" displayName="Access to untyped expression" groupName="Probable bugs"
711                      enabledByDefault="false" level="WARNING"
712                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.untypedUnresolvedAccess.GroovyUntypedAccessInspection"/>
713     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovyUnresolvedAccess" displayName="Access to unresolved expression" groupName="Probable bugs"
714                      enabledByDefault="false" level="WARNING"
715                      implementationClass="org.jetbrains.plugins.groovy.codeInspection.untypedUnresolvedAccess.GroovyUnresolvedAccessInspection"/>
716     <localInspection language="Groovy" groupPath="Groovy" shortName="GroovySingletonAnnotation" displayName="Check '@Singleton' annotation conventions"
717                      groupName="Annotations verifying" enabledByDefault="true" level="WARNING"
718                      implementationClass="org.jetbrains.plugins.groovy.annotator.inspections.GroovySingletonAnnotationInspection"/>
719
720     <!-- control flow -->
721     <intentionAction>
722       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
723       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
724       <className>org.jetbrains.plugins.groovy.intentions.control.DemorgansLawIntention</className>
725     </intentionAction>
726     <intentionAction>
727       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
728       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
729       <className>org.jetbrains.plugins.groovy.intentions.control.SplitIfIntention</className>
730     </intentionAction>
731     <intentionAction>
732       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
733       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
734       <className>org.jetbrains.plugins.groovy.intentions.control.InvertIfIntention</className>
735     </intentionAction>
736     <intentionAction>
737       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
738       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
739       <className>org.jetbrains.plugins.groovy.intentions.control.CreateParameterForFieldIntention</className>
740     </intentionAction>
741     <intentionAction>
742       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
743       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
744       <className>org.jetbrains.plugins.groovy.intentions.control.MergeIfAndIntention</className>
745     </intentionAction>
746     <intentionAction>
747       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
748       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
749       <className>org.jetbrains.plugins.groovy.intentions.control.ExpandBooleanIntention</className>
750     </intentionAction>
751     <intentionAction>
752       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
753       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
754       <className>org.jetbrains.plugins.groovy.intentions.control.FlipConjunctionIntention</className>
755     </intentionAction>
756     <intentionAction>
757       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
758       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
759       <className>org.jetbrains.plugins.groovy.intentions.control.FlipComparisonIntention</className>
760     </intentionAction>
761     <intentionAction>
762       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
763       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
764       <className>org.jetbrains.plugins.groovy.intentions.control.NegateComparisonIntention</className>
765     </intentionAction>
766     <intentionAction>
767       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
768       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
769       <className>org.jetbrains.plugins.groovy.intentions.control.MergeElseIfIntention</className>
770     </intentionAction>
771     <intentionAction>
772       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
773       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
774       <className>org.jetbrains.plugins.groovy.intentions.control.SplitElseIfIntention</className>
775     </intentionAction>
776     <intentionAction>
777       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
778       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
779       <className>org.jetbrains.plugins.groovy.intentions.control.FlipConditionalIntention</className>
780     </intentionAction>
781     <intentionAction>
782       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
783       <categoryKey>intention.category.groovy/intention.category.control.flow</categoryKey>
784       <className>org.jetbrains.plugins.groovy.intentions.control.ConditionalToElvisIntention</className>
785     </intentionAction>
786
787     <!-- closures -->
788     <intentionAction>
789       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
790       <categoryKey>intention.category.groovy/intention.category.closures</categoryKey>
791       <className>org.jetbrains.plugins.groovy.intentions.closure.MakeClosureCallExplicitIntention</className>
792     </intentionAction>
793     <intentionAction>
794       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
795       <categoryKey>intention.category.groovy/intention.category.closures</categoryKey>
796       <className>org.jetbrains.plugins.groovy.intentions.closure.MakeClosureCallImplicitIntention</className>
797     </intentionAction>
798     <intentionAction>
799       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
800       <categoryKey>intention.category.groovy/intention.category.closures</categoryKey>
801       <className>org.jetbrains.plugins.groovy.intentions.closure.ForToEachIntention</className>
802     </intentionAction>
803     <intentionAction>
804       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
805       <categoryKey>intention.category.groovy/intention.category.closures</categoryKey>
806       <className>org.jetbrains.plugins.groovy.intentions.closure.EachToForIntention</className>
807     </intentionAction>
808     <!--
809     todo make this work
810     <intentionAction>
811       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
812       <categoryKey>intention.category.groovy/intention.category.closures</categoryKey>
813       <className>org.jetbrains.plugins.groovy.intentions.closure.ConvertClosureArgToItIntention</className>
814     </intentionAction>
815     -->
816
817     <!-- comments -->
818     <intentionAction>
819       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
820       <categoryKey>intention.category.groovy/intention.category.comments</categoryKey>
821       <className>org.jetbrains.plugins.groovy.intentions.comments.ChangeToCStyleCommentIntention</className>
822     </intentionAction>
823     <!--
824     todo make this work
825     <intentionAction>
826       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
827       <categoryKey>intention.category.groovy/intention.category.comments</categoryKey>
828       <className>org.jetbrains.plugins.groovy.intentions.comments.ChangeToEndOfLineCommentIntention</className>
829     </intentionAction>
830     -->
831
832     <!-- conversions -->
833     <intentionAction>
834       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
835       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
836       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertJavaStyleArrayIntention</className>
837     </intentionAction>
838     <intentionAction>
839       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
840       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
841       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToDecimalIntention</className>
842     </intentionAction>
843     <intentionAction>
844       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
845       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
846       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToHexIntention</className>
847     </intentionAction>
848     <intentionAction>
849       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
850       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
851       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToOctalIntention</className>
852     </intentionAction>
853     <intentionAction>
854           <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
855           <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
856           <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertIntegerToBinaryIntention</className>
857     </intentionAction>
858     <intentionAction>
859       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
860       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
861       <className>org.jetbrains.plugins.groovy.intentions.conversions.IndexingMethodConversionIntention</className>
862     </intentionAction>
863     <intentionAction>
864       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
865       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
866       <className>org.jetbrains.plugins.groovy.intentions.conversions.IndexedExpressionConversionIntention</className>
867     </intentionAction>
868     <!--<intentionAction>
869       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
870       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
871       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertStringToGStringIntention</className>
872     </intentionAction>-->
873     <intentionAction>
874       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
875       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
876       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertGStringToStringIntention</className>
877     </intentionAction>
878     <intentionAction>
879       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
880       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
881       <className>org.jetbrains.plugins.groovy.intentions.conversions.RemoveParenthesesFromMethodCallIntention</className>
882     </intentionAction>
883     <intentionAction>
884       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
885       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
886       <className>org.jetbrains.plugins.groovy.intentions.conversions.RemoveUnnecessaryBracesInGStringIntention</className>
887     </intentionAction>
888     <intentionAction>
889       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
890       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
891       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertMapToClassIntention</className>
892     </intentionAction>
893     <intentionAction>
894       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
895       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
896       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertConcatenationToGstringIntention</className>
897     </intentionAction>
898     <intentionAction>
899       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
900       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
901       <className>org.jetbrains.plugins.groovy.intentions.conversions.RenameFileWithClassIntention</className>
902     </intentionAction>
903     <intentionAction>
904       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
905       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
906       <className>org.jetbrains.plugins.groovy.intentions.conversions.MoveClassToNewFileIntention</className>
907     </intentionAction>
908     <intentionAction>
909       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
910       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
911       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertMethodToClosureIntention</className>
912     </intentionAction>
913     <intentionAction>
914       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
915       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
916       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertClosureToMethodIntention</className>
917     </intentionAction>
918     <intentionAction>
919       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
920       <categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
921       <className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertJunitAssertionToAssertStatementIntention</className>
922     </intentionAction>
923
924     <!-- groovy style -->
925     <intentionAction>
926       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
927       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
928       <className>org.jetbrains.plugins.groovy.intentions.style.JavaStylePropertiesInvocationIntention</className>
929     </intentionAction>
930     <intentionAction>
931       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
932       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
933       <className>org.jetbrains.plugins.groovy.intentions.style.RemoveUnnecessarySemicolonsIntention</className>
934     </intentionAction>
935     <intentionAction>
936       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
937       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
938       <className>org.jetbrains.plugins.groovy.intentions.style.ImportStaticIntention</className>
939     </intentionAction>
940     <intentionAction>
941       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
942       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
943       <className>org.jetbrains.plugins.groovy.intentions.style.ImportOnDemandIntention</className>
944     </intentionAction>
945     <intentionAction>
946       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
947       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
948       <className>org.jetbrains.plugins.groovy.intentions.style.ConvertToGeeseBracesIntention</className>
949     </intentionAction>
950     <intentionAction>
951       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
952       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
953       <className>org.jetbrains.plugins.groovy.intentions.style.ConvertFromGeeseBracesIntention</className>
954     </intentionAction>
955     <intentionAction>
956       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
957       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
958       <className>org.jetbrains.plugins.groovy.intentions.style.AddReturnTypeFix</className>
959     </intentionAction>
960     <intentionAction>
961           <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
962           <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
963           <className>org.jetbrains.plugins.groovy.intentions.style.ReplaceQualifiedReferenceWithImportIntention</className>
964         </intentionAction>
965     <intentionAction>
966       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
967       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
968       <className>org.jetbrains.plugins.groovy.intentions.style.parameterToEntry.ConvertParameterToMapEntryIntention</className>
969     </intentionAction>
970     <intentionAction>
971       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
972       <categoryKey>intention.category.groovy/intention.category.groovy.style</categoryKey>
973       <className>org.jetbrains.plugins.groovy.intentions.style.ReplaceAbstractClassInstanceByMapIntention</className>
974     </intentionAction>
975
976     <intentionAction>
977       <bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
978       <categoryKey>intention.category.groovy</categoryKey>
979       <className>org.jetbrains.plugins.groovy.grape.GrabDependencies</className>
980     </intentionAction>
981
982
983     <projectService serviceInterface="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicToolWindowWrapper"
984                     serviceImplementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicToolWindowWrapper"/>
985
986     <java.programPatcher implementation="org.jetbrains.plugins.groovy.debugger.GroovyHotSwapper"/>
987     <psi.referenceContributor implementation="org.jetbrains.plugins.groovy.gpp.GppReferenceContributor"/>
988
989     <library.presentationProvider implementation="org.jetbrains.plugins.groovy.griffon.GriffonLibraryPresentationProvider"/>
990     <moduleBuilder builderClass="org.jetbrains.plugins.groovy.griffon.GriffonModuleBuilder" id="griffonModuleBuilder"/>
991     <projectStructureDetector implementation="org.jetbrains.plugins.groovy.griffon.GriffonProjectStructureDetector"/>
992     <programRunner implementation="org.jetbrains.plugins.groovy.griffon.GriffonDebuggerRunner"/>
993     <configurationType implementation="org.jetbrains.plugins.groovy.griffon.GriffonRunConfigurationType"/>
994     <toolWindow id="Griffon View" anchor="left" secondary="false" icon="/icons/griffon/griffon.png"
995                 factoryClass="org.jetbrains.plugins.groovy.griffon.GriffonToolWindowFactory"
996                 conditionClass="org.jetbrains.plugins.groovy.griffon.GriffonToolWindowFactory"/>
997
998     <roots.watchedRootsProvider implementation="org.jetbrains.plugins.groovy.mvc.MvcWatchedRootProvider"/>
999     <projectService serviceInterface="org.jetbrains.plugins.groovy.mvc.MvcConsole"
1000                     serviceImplementation="org.jetbrains.plugins.groovy.mvc.MvcConsole"/>
1001     <selectInTarget implementation="org.jetbrains.plugins.groovy.mvc.projectView.MvcProjectViewSelectInTarget"/>
1002     <applicationService serviceImplementation="org.jetbrains.plugins.groovy.mvc.MvcRunTargetHistoryService"
1003                     serviceInterface="org.jetbrains.plugins.groovy.mvc.MvcRunTargetHistoryService"/>
1004
1005     <debugger.positionManagerFactory id="groovyPositionManager" implementation="org.jetbrains.plugins.groovy.debugger.GroovyPositionManagerFactory"/>
1006     <debugger.positionManagerFactory order="after groovyPositionManager" implementation="org.jetbrains.plugins.groovy.springloaded.SpringLoadedPositionManagerFactory"/>
1007   </extensions>
1008
1009   <extensions defaultExtensionNs="com.intellij.debugger">
1010     <codeFragmentFactory implementation="org.jetbrains.plugins.groovy.debugger.GroovyCodeFragmentFactory"/>
1011   </extensions>
1012
1013   <actions>
1014     <action id="Groovy.NewClass" class="org.jetbrains.plugins.groovy.actions.NewGroovyClassAction"
1015             text="Groovy Class" description="Create new Groovy class">
1016       <add-to-group group-id="NewGroup" anchor="after" relative-to-action="NewGroup1"/>
1017     </action>
1018     <action id="Groovy.NewScript" class="org.jetbrains.plugins.groovy.actions.NewScriptAction"
1019             text="Groovy Script" description="Create new Groovy script">
1020       <add-to-group group-id="NewGroup" anchor="last"/>
1021     </action>
1022
1023     <action id="Gant.NewScript" class="org.jetbrains.plugins.groovy.gant.NewGantScriptAction"
1024             text="Gant Script" description="Create new Gant script">
1025       <add-to-group group-id="NewGroup" anchor="last"/>
1026     </action>
1027
1028       
1029     <group id="Internal.Groovy" text="Groovy" popup="true" internal="true">
1030       <action id="GetPsiTypeAction" class="org.jetbrains.plugins.groovy.actions.GrGetPsiTypeAction"
1031               text="get PsiType" description=""
1032               internal = "true"/>
1033       <action id="ConvertGroovyToJava"
1034               class="org.jetbrains.plugins.groovy.actions.ConvertToJavaAction"
1035               text="Convert to Java"
1036               description="Convert Groovy files to Java"
1037               internal = "true"/>
1038       <action id="DumpGroovyControlFlowAction"
1039               class="org.jetbrains.plugins.groovy.actions.DumpGroovyControlFlowAction"
1040               text="dump groovy control flow"
1041               description="" internal="true"/>
1042       <action id="DumpGroovyStubsAction"
1043               class="org.jetbrains.plugins.groovy.actions.DumpGroovyStubsAction"
1044               text="dump groovy stubs"
1045               description="" internal="true"/>
1046       <action id="Groovy.Extract.Closure" class="org.jetbrains.plugins.groovy.refactoring.extract.closure.ExtractClosureAction"
1047               text="Closure...">
1048         <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt shift M"/>
1049       </action>
1050       <add-to-group group-id="Internal"/>
1051     </group>
1052
1053     <action id="ExcludeFromStubGeneration"
1054             class="org.jetbrains.plugins.groovy.compiler.ExcludeFromStubGenerationAction"
1055             text="Exclude from stub generation" description="Don't generate Java stubs for this Groovy file on compilation">
1056       <add-to-group group-id="EditorTabPopupMenu" anchor="after" relative-to-action="RenameJavaFileToGroovyFileAction"/>
1057     </action>
1058     <action id="org.jetbrains.plugins.groovy.actions.generate.equals.GroovyGenerateEqualsAction"
1059             class="org.jetbrains.plugins.groovy.actions.generate.equals.GroovyGenerateEqualsAction"
1060             text="equals() and hashCode()" description="Action generates equals and hashCode now">
1061       <add-to-group group-id="GenerateGroup" anchor="first"/>
1062     </action>
1063
1064     <action id="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterSetterAction"
1065             class="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterSetterAction"
1066             text="Getter and Setter" description="Generates getter">
1067       <add-to-group group-id="GenerateGroup" anchor="first"/>
1068     </action>
1069
1070     <action id="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateSetterAction"
1071             class="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateSetterAction"
1072             text="Setter" description="Generates setter">
1073       <add-to-group group-id="GenerateGroup" anchor="first"/>
1074     </action>
1075
1076     <action id="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterAction"
1077             class="org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterAction"
1078             text="Getter" description="Generates getter">
1079       <add-to-group group-id="GenerateGroup" anchor="first"/>
1080     </action>
1081
1082     <action id="org.jetbrains.plugins.groovy.actions.generate.constructors.GroovyGenerateConstructorAction"
1083             class="org.jetbrains.plugins.groovy.actions.generate.constructors.GroovyGenerateConstructorAction"
1084             text="Constructor" description="Generates constructor">
1085       <add-to-group group-id="GenerateGroup" anchor="first"/>
1086     </action>
1087
1088     <action id="Groovy.Doc.Generating"
1089             class="org.jetbrains.plugins.groovy.doc.actions.GenerateGroovyDocAction"
1090             text="Generate GroovyDoc" description="Generating Groovy Documentation"
1091             icon="/org/jetbrains/plugins/groovy/images/GroovyDoc.png">
1092       <add-to-group group-id="ToolsMenu" anchor="last"/>
1093     </action>
1094
1095     <!--<action id="Groovy.Extract.Closure" class="org.jetbrains.plugins.groovy.refactoring.extract.closure.ExtractClosureAction" text="Closure...">
1096       <add-to-group group-id="IntroduceActionsGroup" anchor="after" relative-to-action="ExtractMethod"/>
1097       <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt shift M"/>
1098     </action>-->
1099
1100     <group id="Mvc.Actions" popup="true" class="org.jetbrains.plugins.groovy.mvc.MvcActionGroup">
1101       <action id="Mvc.Upgrade"
1102               class="org.jetbrains.plugins.groovy.mvc.MvcUpgradeAction"
1103               text="Change SDK version" description="Change Grails/Griffon SDK version">
1104       </action>
1105
1106       <action id="Griffon.UpdateDependencies" class="org.jetbrains.plugins.groovy.griffon.UpdateGriffonSettingsAction"
1107               text="Synchronize Griffon settings" description="Refresh IntelliJ IDEA project structure so that it matches Griffon build settings">
1108       </action>
1109
1110       <action id="Mvc.RunTarget" class="org.jetbrains.plugins.groovy.mvc.MvcRunTarget"
1111               text="Run Target" description="Run arbitrary Grails/Griffon target">
1112         <keyboard-shortcut keymap="$default" first-keystroke="ctrl alt G"/>
1113       </action>
1114       <add-to-group group-id="ProjectViewPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/>
1115       <add-to-group group-id="NavbarPopupMenu" anchor="after" relative-to-action="AddFrameworkSupport"/>
1116       <add-to-group group-id="ToolsMenu" anchor="last"/>
1117     </group>
1118
1119   </actions>
1120
1121   <application-components>
1122     <component>
1123       <implementation-class>org.jetbrains.plugins.groovy.gant.GantLoader</implementation-class>
1124     </component>
1125     <component>
1126       <implementation-class>org.jetbrains.plugins.groovy.mvc.MvcPathMacros</implementation-class>
1127     </component>
1128   </application-components>
1129
1130   <project-components>
1131     <component>
1132       <implementation-class>org.jetbrains.plugins.groovy.compiler.GroovyCompilerLoader</implementation-class>
1133     </component>
1134     <component>
1135       <implementation-class>org.jetbrains.plugins.groovy.codeInspection.local.GroovyUnusedImportsPassFactory</implementation-class>
1136     </component>
1137     <component>
1138       <interface-class>org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManager</interface-class>
1139       <implementation-class>org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManagerImpl</implementation-class>
1140     </component>
1141     <component>
1142       <implementation-class>org.jetbrains.plugins.groovy.mvc.MvcModuleStructureSynchronizer</implementation-class>
1143     </component>
1144   </project-components>
1145
1146
1147 </idea-plugin>