Added extension point to allow extend functionality of Python PreferredSdkComparator
[idea/community.git] / python / src / META-INF / python-core-common.xml
1 <idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
2   <!-- Components and extensions declared in this file work both in PyCharm and Python plugin.
3        Both Community and Professional editions. -->
4
5   <resource-bundle>com.jetbrains.python.PyBundle</resource-bundle>
6
7   <module value="com.intellij.modules.python"/>
8
9   <!-- Enable command-line language -->
10   <xi:include href="/META-INF/command-line.xml" xpointer="xpointer(/idea-plugin/*)"/>
11
12   <extensions defaultExtensionNs="com.intellij">
13     <psi.treeChangePreprocessor implementation="com.jetbrains.python.PythonPsiManager"/>
14     <library.type implementation="com.jetbrains.python.library.PythonLibraryType"/>
15     <renameHandler implementation="com.jetbrains.python.magicLiteral.PyMagicLiteralRenameHandler"/>
16     <nameSuggestionProvider implementation="com.jetbrains.python.refactoring.PyNameSuggestionProvider"/>
17     <methodNavigationOffsetProvider implementation="com.jetbrains.python.codeInsight.PyMethodNavigationOffsetProvider"/>
18     <copyPastePreProcessor implementation="com.jetbrains.python.editor.PythonCopyPasteProcessor"/>
19     <fileTypeFactory implementation="com.jetbrains.python.PythonFileTypeFactory"/>
20     <fileTypeDetector implementation="com.jetbrains.python.PyFileTypeDetector"/>
21     <editorHighlighterProvider filetype="Python" implementationClass="com.jetbrains.python.PyEditorHighlighterProvider"/>
22     <lang.syntaxHighlighterFactory language="Python" implementationClass="com.jetbrains.python.highlighting.PySyntaxHighlighterFactory"/>
23     <lang.braceMatcher language="Python" implementationClass="com.jetbrains.python.PyBraceMatcher"/>
24     <lang.parserDefinition language="Python" implementationClass="com.jetbrains.python.PythonParserDefinition"/>
25     <lang.commenter language="Python" implementationClass="com.jetbrains.python.PythonCommenter"/>
26     <lang.foldingBuilder language="Python" implementationClass="com.jetbrains.python.PythonFoldingBuilder"/>
27     <lang.findUsagesProvider language="Python" implementationClass="com.jetbrains.python.findUsages.PythonFindUsagesProvider"/>
28     <lang.formatter language="Python" implementationClass="com.jetbrains.python.formatter.PythonFormattingModelBuilder"/>
29     <preFormatProcessor implementation="com.jetbrains.python.formatter.PyPreFormatProcessor"/>
30     <postFormatProcessor implementation="com.jetbrains.python.formatter.PyTrailingBlankLinesPostFormatProcessor"/>
31     <postFormatProcessor implementation="com.jetbrains.python.formatter.PyFromImportPostFormatProcessor"/>
32     <lang.whiteSpaceFormattingStrategy language="Python"
33                                        implementationClass="com.jetbrains.python.formatter.PyWhiteSpaceFormattingStrategy"/>
34     <lang.lineWrapStrategy language="Python" implementationClass="com.jetbrains.python.formatter.PyLineWrapPositionStrategy"/>
35     <lang.namesValidator language="Python" implementationClass="com.jetbrains.python.refactoring.rename.PythonNamesValidator"/>
36     <lang.surroundDescriptor language="Python"
37                              implementationClass="com.jetbrains.python.refactoring.surround.PyStatementSurroundDescriptor"/>
38     <lang.surroundDescriptor language="Python"
39                              implementationClass="com.jetbrains.python.refactoring.surround.PyExpressionSurroundDescriptor"/>
40     <lang.unwrapDescriptor language="Python" implementationClass="com.jetbrains.python.refactoring.unwrap.PyUnwrapDescriptor"/>
41     <lang.psiStructureViewFactory language="Python" implementationClass="com.jetbrains.python.structureView.PyStructureViewFactory"/>
42     <lang.documentationProvider language="Python" implementationClass="com.jetbrains.python.documentation.PythonDocumentationProvider"/>
43     <lang.documentationProvider language="Python" implementationClass="com.jetbrains.python.console.PydevDocumentationProvider"/>
44     <lang.emacs language="Python" implementationClass="com.jetbrains.python.editor.PyEmacsHandler"/>
45     <highlightRangeExtension implementation="com.jetbrains.python.validation.DumbAwareHighlightingAnnotator"/>
46     <annotator language="Python" implementationClass="com.jetbrains.python.validation.PyAnnotatingVisitor"/>
47     <annotator language="Python" implementationClass="com.jetbrains.python.validation.PyDumbAwareAnnotator"/>
48     <annotator language="Python" implementationClass="com.jetbrains.python.inspections.PyCompatibilityInspectionAdvertiser"/>
49     <quoteHandler fileType="Python" className="com.jetbrains.python.editor.PythonQuoteHandler"/>
50     <enterHandlerDelegate implementation="com.jetbrains.python.editor.PythonEnterHandler"/>
51     <enterHandlerDelegate implementation="com.jetbrains.python.editor.PyEnterAtIndentHandler" order="first"/>
52     <enterHandlerDelegate implementation="com.jetbrains.python.editor.PyEnterBetweenBracketsHandler"/>
53     <editorActionHandler action="EditorCopy" implementationClass="com.jetbrains.python.console.PyConsoleCopyHandler"/>
54
55     <editor.backspaceModeOverride language="Python" implementationClass="com.intellij.codeInsight.editorActions.SmartBackspaceDisabler"/>
56     <sdkType implementation="com.jetbrains.python.sdk.PythonSdkType"/>
57     <gotoClassContributor implementation="com.jetbrains.python.PyGotoClassContributor"/>
58     <gotoSymbolContributor implementation="com.jetbrains.python.PyGotoSymbolContributor"/>
59     <codeInsight.parameterInfo language="Python" implementationClass="com.jetbrains.python.PyParameterInfoHandler"/>
60     <codeInsight.fillParagraph language="Python" implementationClass="com.jetbrains.python.actions.PyFillParagraphHandler"/>
61     <colorSettingsPage implementation="com.jetbrains.python.highlighting.PythonColorsPage"/>
62     <extendWordSelectionHandler implementation="com.jetbrains.python.editor.selectWord.PyWordSelectionHandler"/>
63     <extendWordSelectionHandler implementation="com.jetbrains.python.editor.selectWord.PyLiteralSelectionHandler"/>
64     <extendWordSelectionHandler implementation="com.jetbrains.python.editor.selectWord.PyStatementSelectionHandler"/>
65     <extendWordSelectionHandler implementation="com.jetbrains.python.editor.selectWord.PyListSelectionHandler"/>
66     <extendWordSelectionHandler implementation="com.jetbrains.python.editor.selectWord.PyCommaSelectionHandler"/>
67     <basicWordSelectionFilter implementation="com.jetbrains.python.editor.selectWord.PyBasicWordSelectionFilter"/>
68     <stripTrailingSpacesFilterFactory implementation="com.jetbrains.python.editor.PyStripTrailingSpacesFilterFactory"/>
69     <completion.contributor language="Python"
70                             implementationClass="com.jetbrains.python.codeInsight.completion.PyKeywordCompletionContributor"/>
71     <completion.contributor language="Python"
72                             implementationClass="com.jetbrains.python.codeInsight.completion.PySpecialMethodNamesCompletionContributor"/>
73     <completion.contributor language="Python"
74                             implementationClass="com.jetbrains.python.codeInsight.completion.PySuperMethodCompletionContributor"/>
75     <completion.contributor language="Python"
76                             implementationClass="com.jetbrains.python.codeInsight.completion.PySuperClassAttributesCompletionContributor"/>
77     <completion.contributor language="Python"
78                             implementationClass="com.jetbrains.python.codeInsight.completion.PyDictKeyNamesCompletionContributor"/>
79     <completion.contributor language="Python"
80                             implementationClass="com.jetbrains.python.codeInsight.completion.PyParameterCompletionContributor"/>
81     <completion.contributor language="Python"
82                             implementationClass="com.jetbrains.python.codeInsight.completion.PyDocstringCompletionContributor"/>
83     <completion.contributor language="Python"
84                             implementationClass="com.jetbrains.python.codeInsight.completion.PyMetaClassCompletionContributor"/>
85     <completion.contributor language="Python"
86                             implementationClass="com.jetbrains.python.codeInsight.completion.PyStructuralTypeAttributesCompletionContributor"/>
87
88     <completion.contributor language="Python"
89                             implementationClass="com.jetbrains.python.codeInsight.completion.PyStringFormatCompletionContributor" />
90
91     <lang.tokenSeparatorGenerator language="Python" implementationClass="com.jetbrains.python.PyTokenSeparatorGenerator"/>
92     <lang.elementManipulator forClass="com.jetbrains.python.psi.PyReferenceExpression"
93                              implementationClass="com.jetbrains.python.psi.impl.PyReferenceExpressionManipulator"/>
94
95     <projectService serviceInterface="com.jetbrains.python.psi.PyElementGenerator"
96                     serviceImplementation="com.jetbrains.python.psi.impl.PyElementGeneratorImpl"/>
97
98     <projectService serviceInterface="com.jetbrains.python.psi.types.TypeEvalContextCache"
99                     serviceImplementation="com.jetbrains.python.psi.types.TypeEvalContextCacheImpl"
100                   />
101
102     <projectService serviceImplementation="com.jetbrains.python.inspections.PyCompatibilityInspectionAdvertiserSettings"/>
103
104     <applicationService serviceInterface="com.jetbrains.python.packaging.PyPackageService"
105                         serviceImplementation="com.jetbrains.python.packaging.PyPackageService"/>
106     <applicationService serviceInterface="com.jetbrains.python.packaging.PyCondaPackageService"
107                         serviceImplementation="com.jetbrains.python.packaging.PyCondaPackageService"/>
108     <applicationService serviceInterface="com.jetbrains.python.module.PyModuleService"
109                         serviceImplementation="com.jetbrains.python.module.PyModuleServiceImpl"/>
110     <applicationService serviceInterface="com.jetbrains.python.sdk.flavors.WinRegistryService"
111                         serviceImplementation="com.jetbrains.python.sdk.flavors.WinRegistryServiceImpl"/>
112     <applicationService
113         serviceImplementation="com.jetbrains.python.sdk.flavors.WinPythonSdkFlavor"/>
114     <typedHandler implementation="com.jetbrains.python.codeInsight.PyKeywordTypedHandler" id="pyCommaAfterKwd"/>
115     <typedHandler implementation="com.jetbrains.python.codeInsight.PyMethodNameTypedHandler" id="pyMethodNameTypedHandler"/>
116     <typedHandler implementation="com.jetbrains.python.editor.PythonSpaceHandler"/>
117
118     <stubIndex implementation="com.jetbrains.python.psi.stubs.PyClassNameIndex"/>
119     <stubIndex implementation="com.jetbrains.python.psi.stubs.PyClassNameIndexInsensitive"/>
120     <stubIndex implementation="com.jetbrains.python.psi.stubs.PyFunctionNameIndex"/>
121     <stubIndex implementation="com.jetbrains.python.psi.stubs.PySuperClassIndex"/>
122     <stubIndex implementation="com.jetbrains.python.psi.stubs.PyVariableNameIndex"/>
123     <stubIndex implementation="com.jetbrains.python.psi.stubs.PyInstanceAttributeIndex"/>
124     <stubIndex implementation="com.jetbrains.python.psi.stubs.PyDecoratorStubIndex"/>
125     <stubIndex implementation="com.jetbrains.python.psi.stubs.PyClassAttributesIndex"/>
126     <fileBasedIndex implementation="com.jetbrains.python.psi.stubs.PyModuleNameIndex"/>
127     <fileBasedIndex implementation="com.jetbrains.python.psi.stubs.PySetuptoolsNamespaceIndex"/>
128
129     <declarationRangeHandler key="com.jetbrains.python.psi.PyClass"
130                              implementationClass="com.jetbrains.python.codeInsight.PyDeclarationRangeHandler"/>
131
132     <declarationRangeHandler key="com.jetbrains.python.psi.PyFunction"
133                              implementationClass="com.jetbrains.python.codeInsight.PyDeclarationRangeHandler"/>
134
135     <targetElementEvaluator language="Python" implementationClass="com.jetbrains.python.codeInsight.PyTargetElementEvaluator"/>
136
137     <moduleService serviceInterface="com.jetbrains.python.ReSTService"
138                    serviceImplementation="com.jetbrains.python.ReSTService"/>
139
140     <!-- Run/Debug -->
141     <applicationService serviceInterface="com.jetbrains.python.run.PyRunConfigurationFactory"
142                         serviceImplementation="com.jetbrains.python.run.PyRunConfigurationFactoryImpl"/>
143     <applicationService serviceInterface="com.jetbrains.python.run.PythonRunConfigurationExtensionsManager"
144                         serviceImplementation="com.jetbrains.python.run.PythonRunConfigurationExtensionsManager"/>
145     <configurationType implementation="com.jetbrains.python.run.PythonConfigurationType"/>
146     <programRunner implementation="com.jetbrains.python.run.PythonRunner" order="first"/>
147     <programRunner implementation="com.jetbrains.python.debugger.PyDebugRunner"/>
148     <runConfigurationProducer implementation="com.jetbrains.python.run.PythonRunConfigurationProducer"/>
149     <xdebugger.breakpointType implementation="com.jetbrains.python.debugger.PyLineBreakpointType"/>
150     <xdebugger.breakpointType implementation="com.jetbrains.python.debugger.PyExceptionBreakpointType"/>
151     <xdebugger.settings implementation="com.jetbrains.python.debugger.settings.PyDebuggerSettings"/>
152     <xdebugger.localAttachDebuggerProvider implementation="com.jetbrains.python.debugger.attach.PyLocalAttachDebuggerProvider"/>
153
154     <configurationType implementation="com.jetbrains.python.testing.PythonTestConfigurationType"/>
155     <configurationType implementation="com.jetbrains.python.testing.tox.PyToxConfigurationType"/>
156
157     <runConfigurationProducer implementation="com.jetbrains.python.testing.unittest.PythonUnitTestConfigurationProducer"/>
158     <runConfigurationProducer implementation="com.jetbrains.python.testing.pytest.PyTestConfigurationProducer"/>
159     <runConfigurationProducer implementation="com.jetbrains.python.testing.doctest.PythonDocTestConfigurationProducer"/>
160     <runConfigurationProducer implementation="com.jetbrains.python.testing.tox.PyToxConfigurationProducer"/>
161     <runConfigurationProducer implementation="com.jetbrains.python.testing.nosetest.PythonNoseTestConfigurationProducer"/>
162     <runConfigurationProducer implementation="com.jetbrains.python.testing.universalTests.PyUniversalTestsConfigurationProducer"/>
163
164     <codeInsight.lineMarkerProvider language="Python" implementationClass="com.jetbrains.python.codeInsight.PyLineMarkerProvider"/>
165     <runLineMarkerContributor language="Python" implementationClass="com.jetbrains.python.codeInsight.PyRunLineMarkerContributor"/>
166     <definitionsSearch implementation="com.jetbrains.python.psi.search.PyDefinitionsSearch"/>
167     <gotoTargetRendererProvider implementation="com.jetbrains.python.codeInsight.PyGotoTargetRendererProvider"/>
168
169     <typeHierarchyProvider language="Python" implementationClass="com.jetbrains.python.hierarchy.PyTypeHierachyProvider"/>
170     <callHierarchyProvider language="Python" implementationClass="com.jetbrains.python.hierarchy.call.PyCallHierarchyProvider"/>
171     <highlightUsagesHandlerFactory implementation="com.jetbrains.python.codeInsight.highlighting.PyHighlightExitPointsHandlerFactory"/>
172
173     <joinLinesHandler implementation="com.jetbrains.python.editor.PyJoinLinesHandler"/>
174
175     <intentionAction>
176       <className>com.jetbrains.python.codeInsight.intentions.PyConvertMethodToPropertyIntention</className>
177       <category>Python</category>
178     </intentionAction>
179
180     <intentionAction>
181       <className>com.jetbrains.python.codeInsight.intentions.ImportToImportFromIntention</className>
182       <category>Python</category>
183     </intentionAction>
184
185     <intentionAction>
186       <className>com.jetbrains.python.codeInsight.intentions.PyConvertStaticMethodToFunctionIntention</className>
187       <category>Python</category>
188     </intentionAction>
189
190     <intentionAction>
191       <className>com.jetbrains.python.codeInsight.intentions.SpecifyTypeInDocstringIntention</className>
192       <category>Python</category>
193     </intentionAction>
194
195     <intentionAction>
196       <className>com.jetbrains.python.codeInsight.intentions.SpecifyTypeInPy3AnnotationsIntention</className>
197       <category>Python</category>
198     </intentionAction>
199
200     <intentionAction>
201       <className>com.jetbrains.python.codeInsight.intentions.PyAnnotateTypesIntention</className>
202       <category>Python</category>
203     </intentionAction>
204
205     <intentionAction>
206       <className>com.jetbrains.python.codeInsight.intentions.TypeAssertionIntention</className>
207       <category>Python</category>
208     </intentionAction>
209
210     <intentionAction>
211       <className>com.jetbrains.python.codeInsight.intentions.ImportFromToImportIntention</className>
212       <category>Python</category>
213     </intentionAction>
214
215     <intentionAction>
216       <className>com.jetbrains.python.codeInsight.intentions.ImportToggleAliasIntention</className>
217       <category>Python</category>
218     </intentionAction>
219
220     <intentionAction>
221       <className>com.jetbrains.python.codeInsight.intentions.PySplitIfIntention</className>
222       <category>Python</category>
223     </intentionAction>
224
225     <intentionAction>
226       <className>com.jetbrains.python.codeInsight.intentions.PyNegateComparisonIntention</className>
227       <category>Python</category>
228     </intentionAction>
229
230     <intentionAction>
231       <className>com.jetbrains.python.codeInsight.intentions.PyStringConcatenationToFormatIntention</className>
232       <category>Python</category>
233     </intentionAction>
234
235     <intentionAction>
236       <className>com.jetbrains.python.codeInsight.intentions.ConvertFormatOperatorToMethodIntention</className>
237       <category>Python</category>
238     </intentionAction>
239
240     <intentionAction>
241       <className>com.jetbrains.python.codeInsight.intentions.PyFlipComparisonIntention</className>
242       <category>Python</category>
243     </intentionAction>
244
245     <intentionAction>
246       <className>com.jetbrains.python.codeInsight.intentions.PyDemorganIntention</className>
247       <category>Python</category>
248     </intentionAction>
249
250     <intentionAction>
251       <className>com.jetbrains.python.codeInsight.intentions.ReplaceListComprehensionWithForIntention</className>
252       <category>Python</category>
253     </intentionAction>
254
255     <intentionAction>
256       <className>com.jetbrains.python.codeInsight.intentions.PyJoinIfIntention</className>
257       <category>Python</category>
258     </intentionAction>
259
260     <intentionAction>
261       <className>com.jetbrains.python.codeInsight.intentions.PyDictConstructorToLiteralFormIntention</className>
262       <category>Python</category>
263     </intentionAction>
264
265     <intentionAction>
266       <className>com.jetbrains.python.codeInsight.intentions.PyDictLiteralFormToConstructorIntention</className>
267       <category>Python</category>
268     </intentionAction>
269
270     <intentionAction>
271       <className>com.jetbrains.python.codeInsight.intentions.PyQuotedStringIntention</className>
272       <category>Python</category>
273     </intentionAction>
274
275     <intentionAction>
276       <className>com.jetbrains.python.codeInsight.intentions.PyConvertLambdaToFunctionIntention</className>
277       <category>Python</category>
278     </intentionAction>
279
280     <intentionAction>
281       <className>com.jetbrains.python.codeInsight.intentions.ConvertVariadicParamIntention</className>
282       <category>Python</category>
283     </intentionAction>
284
285     <intentionAction>
286       <className>com.jetbrains.python.codeInsight.intentions.PyConvertTripleQuotedStringIntention</className>
287       <category>Python</category>
288     </intentionAction>
289
290     <intentionAction>
291       <className>com.jetbrains.python.codeInsight.intentions.PyConvertLiteralToTupleIntention</className>
292       <category>Python</category>
293     </intentionAction>
294
295     <intentionAction>
296       <className>com.jetbrains.python.codeInsight.intentions.PyConvertLiteralToListIntention</className>
297       <category>Python</category>
298     </intentionAction>
299
300     <intentionAction>
301       <className>com.jetbrains.python.codeInsight.intentions.PyConvertLiteralToSetIntention</className>
302       <category>Python</category>
303     </intentionAction>
304
305     <intentionAction>
306       <className>com.jetbrains.python.codeInsight.intentions.PyTransformConditionalExpressionIntention</className>
307       <category>Python</category>
308     </intentionAction>
309
310     <intentionAction>
311       <className>com.jetbrains.python.codeInsight.intentions.PyGenerateDocstringIntention</className>
312       <category>Python</category>
313     </intentionAction>
314
315     <intentionAction>
316       <className>com.jetbrains.python.codeInsight.intentions.PyYieldFromIntention</className>
317       <category>Python</category>
318     </intentionAction>
319
320     <intentionAction>
321       <className>com.jetbrains.python.codeInsight.intentions.convertToFString.PyConvertToFStringIntention</className>
322       <category>Python</category>
323     </intentionAction>
324
325     <intentionAction>
326       <className>com.jetbrains.python.codeInsight.intentions.PyConvertTypeCommentToVariableAnnotationIntention</className>
327       <category>Python</category>
328     </intentionAction>
329
330     <testFinder implementation="com.jetbrains.python.codeInsight.testIntegration.PyTestFinder"/>
331     <testCreator language="Python" implementationClass="com.jetbrains.python.codeInsight.testIntegration.PyTestCreator"/>
332
333     <stubElementTypeHolder class="com.jetbrains.python.PyElementTypes"/>
334
335     <localInspection language="Python" shortName="PyArgumentListInspection" suppressId="PyArgumentList" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.incorrect.call.arguments" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyArgumentListInspection"/>
336     <localInspection language="Python" shortName="PyRedeclarationInspection" suppressId="PyRedeclaration" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.redeclaration" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyRedeclarationInspection"/>
337     <localInspection language="Python" shortName="PyUnresolvedReferencesInspection" suppressId="PyUnresolvedReferences" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.unresolved.refs" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.unresolvedReference.PyUnresolvedReferencesInspection"/>
338     <localInspection language="Python" shortName="PyInterpreterInspection" suppressId="PyInterpreter" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.invalid.interpreter" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyInterpreterInspection"/>
339     <localInspection language="Python" shortName="PyMethodParametersInspection" suppressId="PyMethodParameters" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.problematic.first.parameter" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyMethodParametersInspection"/>
340     <localInspection language="Python" shortName="PyUnreachableCodeInspection" suppressId="PyUnreachableCode" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.unreachable.code" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyUnreachableCodeInspection"/>
341     <localInspection language="Python" shortName="PyMethodFirstArgAssignmentInspection" suppressId="PyMethodFirstArgAssignment" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.first.arg.assign" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyMethodFirstArgAssignmentInspection"/>
342     <localInspection language="Python" shortName="PyStringFormatInspection" suppressId="PyStringFormat" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.str.format" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyStringFormatInspection"/>
343     <localInspection language="Python" shortName="PyMethodOverridingInspection" suppressId="PyMethodOverriding" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.method.over" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyMethodOverridingInspection"/>
344     <localInspection language="Python" shortName="PyInitNewSignatureInspection" suppressId="PyInitNewSignature" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.new.init.signature" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyInitNewSignatureInspection"/>
345     <localInspection language="Python" shortName="PyTrailingSemicolonInspection" suppressId="PyTrailingSemicolon" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.trailing.semicolon" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyTrailingSemicolonInspection"/>
346     <localInspection language="Python" shortName="PyReturnFromInitInspection" suppressId="PyReturnFromInit" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.init.return" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyReturnFromInitInspection"/>
347     <localInspection language="Python" shortName="PyUnusedLocalInspection" suppressId="PyUnusedLocal" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.unused" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyUnusedLocalInspection"/>
348     <localInspection language="Python" shortName="PyDictCreationInspection" suppressId="PyDictCreation" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.dict.creation" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyDictCreationInspection"/>
349     <localInspection language="Python" shortName="PyDictDuplicateKeysInspection" suppressId="PyDictDuplicateKeys" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.duplicate.keys" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyDictDuplicateKeysInspection"/>
350     <localInspection language="Python" shortName="PyExceptClausesOrderInspection" suppressId="PyExceptClausesOrder" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.bad.except.clauses.order" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyExceptClausesOrderInspection"/>
351     <localInspection language="Python" shortName="PyTupleAssignmentBalanceInspection" suppressId="PyTupleAssignmentBalance" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.incorrect.assignment" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyTupleAssignmentBalanceInspection"/>
352     <localInspection language="Python" shortName="PyClassicStyleClassInspection" suppressId="PyClassicStyleClass" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.classic.class.usage" groupKey="INSP.GROUP.python" enabledByDefault="false"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyClassicStyleClassInspection"/>
353     <localInspection language="Python" shortName="PyExceptionInheritInspection" suppressId="PyExceptionInherit" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.exception.not.inherit" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyExceptionInheritInspection"/>
354     <localInspection language="Python" shortName="PyDefaultArgumentInspection" suppressId="PyDefaultArgument" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.default.argument" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyDefaultArgumentInspection"/>
355     <localInspection language="Python" shortName="PyRaisingNewStyleClassInspection" suppressId="PyRaisingNewStyleClass" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.raising.new.style.class" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyRaisingNewStyleClassInspection"/>
356     <localInspection language="Python" shortName="PyIncorrectDocstringInspection" suppressId="PyIncorrectDocstring" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.incorrect.docstring" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyIncorrectDocstringInspection"/>
357     <localInspection language="Python" shortName="PyMissingOrEmptyDocstringInspection" suppressId="PyMissingOrEmptyDocstring" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.missing.or.empty.docstring" groupKey="INSP.GROUP.python" enabledByDefault="false" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyMissingOrEmptyDocstringInspection"/>
358     <localInspection language="Python" shortName="PyUnboundLocalVariableInspection" suppressId="PyUnboundLocalVariable" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.unbound" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyUnboundLocalVariableInspection"/>
359     <localInspection language="Python" shortName="PyStatementEffectInspection" suppressId="PyStatementEffect" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.statement.effect" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyStatementEffectInspection"/>
360     <localInspection language="Python" shortName="PySimplifyBooleanCheckInspection" suppressId="PySimplifyBooleanCheck" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.check.can.be.simplified" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PySimplifyBooleanCheckInspection"/>
361     <localInspection language="Python" shortName="PyFromFutureImportInspection" suppressId="PyFromFutureImport" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.from.future.import" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyFromFutureImportInspection"/>
362     <localInspection language="Python" shortName="PyComparisonWithNoneInspection" suppressId="PyComparisonWithNone" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.comparison.with.none" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyComparisonWithNoneInspection"/>
363     <localInspection language="Python" shortName="PyStringExceptionInspection" suppressId="PyStringException" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.raising.string.exception" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyStringExceptionInspection"/>
364     <localInspection language="Python" shortName="PySuperArgumentsInspection" suppressId="PySuperArguments" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.wrong.super.arguments" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PySuperArgumentsInspection"/>
365     <localInspection language="Python" shortName="PyByteLiteralInspection" suppressId="PyByteLiteral" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.byte.literal" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyByteLiteralInspection"/>
366     <localInspection language="Python" shortName="PyNonAsciiCharInspection" suppressId="PyNonAsciiChar" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.non.ascii" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyNonAsciiCharInspection"/>
367     <localInspection language="Python" shortName="PyTupleItemAssignmentInspection" suppressId="PyTupleItemAssignment" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.tuple.item.assignment" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyTupleItemAssignmentInspection"/>
368     <localInspection language="Python" shortName="PyCallingNonCallableInspection" suppressId="PyCallingNonCallable" displayName="Trying to call a non-callable object" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyCallingNonCallableInspection"/>
369     <localInspection language="Python" shortName="PyPropertyAccessInspection" suppressId="PyPropertyAccess" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.property.access" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyPropertyAccessInspection"/>
370     <localInspection language="Python" shortName="PyPropertyDefinitionInspection" suppressId="PyPropertyDefinition" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.property.definition" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyPropertyDefinitionInspection"/>
371     <localInspection language="Python" shortName="PyInconsistentIndentationInspection" suppressId="PyInconsistentIndentation" displayName="Inconsistent indentation" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyInconsistentIndentationInspection"/>
372     <localInspection language="Python" shortName="PyNestedDecoratorsInspection" suppressId="PyNestedDecorators" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.nested.decorators" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyNestedDecoratorsInspection"/>
373     <localInspection language="Python" shortName="PyCallByClassInspection" suppressId="PyCallByClass" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.different.class.call" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyCallByClassInspection"/>
374     <localInspection language="Python" shortName="PyBroadExceptionInspection" suppressId="PyBroadException" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.too.broad.exception.clauses" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyBroadExceptionInspection"/>
375     <localInspection language="Python" shortName="PyRedundantParenthesesInspection" suppressId="PyRedundantParentheses" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.redundant.parentheses" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyRedundantParenthesesInspection"/>
376     <localInspection language="Python" shortName="PyAugmentAssignmentInspection" suppressId="PyAugmentAssignment" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.augment.assignment" groupKey="INSP.GROUP.python" enabledByDefault="false"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyAugmentAssignmentInspection"/>
377     <localInspection language="Python" shortName="PyChainedComparisonsInspection" suppressId="PyChainedComparisons" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.chained.comparisons" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyChainedComparisonsInspection"/>
378     <localInspection language="Python" shortName="PyOldStyleClassesInspection" suppressId="PyOldStyleClasses" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.oldstyle.class" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyOldStyleClassesInspection"/>
379     <localInspection language="Python" shortName="PyCompatibilityInspection" suppressId="PyCompatibility" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.compatibility" groupKey="INSP.GROUP.python" enabledByDefault="false"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyCompatibilityInspection"/>
380     <localInspection language="Python" shortName="PyListCreationInspection" suppressId="PyListCreation" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.list.creation" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyListCreationInspection"/>
381     <localInspection language="Python" shortName="PyUnnecessaryBackslashInspection" suppressId="PyUnnecessaryBackslash" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.unnecessary.backslash" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyUnnecessaryBackslashInspection"/>
382     <localInspection language="Python" shortName="PySingleQuotedDocstringInspection" suppressId="PySingleQuotedDocstring" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.single.quoted.docstring" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PySingleQuotedDocstringInspection"/>
383     <localInspection language="Python" shortName="PyMissingConstructorInspection" suppressId="PyMissingConstructor" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.missing.super.constructor" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyMissingConstructorInspection"/>
384     <localInspection language="Python" shortName="PyArgumentEqualDefaultInspection" suppressId="PyArgumentEqualDefault" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.argument.equal.default" groupKey="INSP.GROUP.python" enabledByDefault="false"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyArgumentEqualDefaultInspection"/>
385     <localInspection language="Python" shortName="PySetFunctionToLiteralInspection" suppressId="PySetFunctionToLiteral" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.set.function.to.literal" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PySetFunctionToLiteralInspection"/>
386     <localInspection language="Python" shortName="PyDecoratorInspection" suppressId="PyDecorator" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.decorator.outside.class" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyDecoratorInspection"/>
387     <localInspection language="Python" shortName="PyTypeCheckerInspection" suppressId="PyTypeChecker" displayName="Type checker" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyTypeCheckerInspection"/>
388     <localInspection language="Python" shortName="PyDeprecationInspection" suppressId="PyDeprecation" displayName="Deprecated function, class or module" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyDeprecationInspection"/>
389     <localInspection language="Python" shortName="PyMandatoryEncodingInspection" suppressId="PyMandatoryEncoding" displayName="No encoding specified for file" groupKey="INSP.GROUP.python" enabledByDefault="false"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyMandatoryEncodingInspection"/>
390     <localInspection shortName="PyPackageRequirementsInspection" suppressId="PyPackageRequirements" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.requirements" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WARNING" implementationClass="com.jetbrains.python.inspections.PyPackageRequirementsInspection"/>
391     <localInspection language="Python" shortName="PyPep8Inspection" suppressId="PyPep8" displayName="PEP 8 coding style violation" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyPep8Inspection"/>
392     <localInspection language="Python" shortName="PyAttributeOutsideInitInspection" suppressId="PyAttributeOutsideInit" displayName="Instance attribute defined outside __init__" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyAttributeOutsideInitInspection"/>
393     <localInspection language="Python" shortName="PyClassHasNoInitInspection" suppressId="PyClassHasNoInit" displayName="Class has no __init__ method" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyClassHasNoInitInspection"/>
394     <localInspection language="Python" shortName="PyNoneFunctionAssignmentInspection" suppressId="PyNoneFunctionAssignment" displayName="Assigning function call that doesn't return anything" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyNoneFunctionAssignmentInspection"/>
395     <localInspection language="Python" shortName="PyGlobalUndefinedInspection" suppressId="PyGlobalUndefined" displayName="Global variable is undefined at the module level" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyGlobalUndefinedInspection"/>
396     <localInspection language="Python" shortName="PyProtectedMemberInspection" suppressId="PyProtectedMember" displayName="Access to a protected member of a class" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyProtectedMemberInspection"/>
397     <localInspection language="Python" shortName="PyMethodMayBeStaticInspection" suppressId="PyMethodMayBeStatic" displayName="Method may be static" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyMethodMayBeStaticInspection"/>
398     <localInspection language="Python" shortName="PyDocstringTypesInspection" suppressId="PyDocstringTypes" bundle="com.jetbrains.python.PyBundle" key="INSP.NAME.docstring.types" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyDocstringTypesInspection"/>
399     <localInspection language="Python" shortName="PyShadowingBuiltinsInspection" suppressId="PyShadowingBuiltins" displayName="Shadowing built-ins" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyShadowingBuiltinsInspection"/>
400     <localInspection language="Python" shortName="PyShadowingNamesInspection" suppressId="PyShadowingNames" displayName="Shadowing names from outer scopes" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyShadowingNamesInspection"/>
401     <localInspection language="Python" shortName="PyAbstractClassInspection" suppressId="PyAbstractClass" displayName="Class must implement all abstract methods" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyAbstractClassInspection"/>
402     <localInspection language="Python" shortName="PyPep8NamingInspection" suppressId="PyPep8Naming" displayName="PEP 8 naming convention violation" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyPep8NamingInspection"/>
403     <localInspection language="Python" shortName="PyAssignmentToLoopOrWithParameterInspection" suppressId="PyAssignmentToLoopOrWithParameter" displayName="Assignment to 'for' loop or 'with' statement parameter" groupKey="INSP.GROUP.python" enabledByDefault="true"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyAssignmentToLoopOrWithParameterInspection"/>
404     <localInspection language="Python" shortName="PyDunderSlotsInspection" suppressId="PyDunderSlots" displayName="Definition of __slots__ in a class" groupKey="INSP.GROUP.python" enabledByDefault="true" level="WARNING" implementationClass="com.jetbrains.python.inspections.PyDunderSlotsInspection"/>
405     <localInspection language="Python" shortName="PyMissingTypeHintsInspection" suppressId="PyMissingTypeHints" displayName="Missing type hinting for function definition" groupKey="INSP.GROUP.python" enabledByDefault="false"  level="WEAK WARNING" implementationClass="com.jetbrains.python.inspections.PyMissingTypeHintsInspection"/>
406
407     <defaultLiveTemplatesProvider implementation="com.jetbrains.python.codeInsight.liveTemplates.PyDefaultLiveTemplatesProvider"/>
408     <liveTemplateContext implementation="com.jetbrains.python.codeInsight.liveTemplates.PythonTemplateContextType$General"/>
409     <liveTemplateContext implementation="com.jetbrains.python.codeInsight.liveTemplates.PythonTemplateContextType$Class"/>
410     <liveTemplateMacro implementation="com.jetbrains.python.codeInsight.liveTemplates.CollectionElementNameMacro"/>
411     <liveTemplateMacro implementation="com.jetbrains.python.codeInsight.liveTemplates.PyClassNameMacro"/>
412     <liveTemplateMacro implementation="com.jetbrains.python.codeInsight.liveTemplates.PyFunctionNameMacro"/>
413     <liveTemplateMacro implementation="com.jetbrains.python.codeInsight.liveTemplates.PyIterableVariableMacro"/>
414
415     <codeInsight.overrideMethod language="Python" implementationClass="com.jetbrains.python.codeInsight.override.PyOverrideMethodsHandler"/>
416     <lang.refactoringSupport language="Python" implementationClass="com.jetbrains.python.refactoring.PyRefactoringProvider"/>
417     <lang.refactoringSupport.classMembersRefactoringSupport language="Python"
418                                                             implementationClass="com.jetbrains.python.refactoring.classes.PyMembersRefactoringSupport"/>
419     <inlineActionHandler implementation="com.jetbrains.python.refactoring.inline.PyInlineLocalHandler"/>
420     <codeInsight.gotoSuper language="Python" implementationClass="com.jetbrains.python.codeInsight.PyGotoSuperHandler"/>
421     <gotoDeclarationHandler implementation="com.jetbrains.python.codeInsight.PyBreakContinueGotoProvider" order="FIRST"/>
422     <gotoDeclarationHandler implementation="com.jetbrains.python.psi.impl.PyGotoDeclarationHandler"/>
423     <lang.smartEnterProcessor language="Python"
424                               implementationClass="com.jetbrains.python.codeInsight.editorActions.smartEnter.PySmartEnterProcessor"/>
425     <statementUpDownMover implementation="com.jetbrains.python.codeInsight.editorActions.moveUpDown.PyStatementMover" id="statement"
426                           order="before line"/>
427
428     <filePropertyPusher implementation="com.jetbrains.python.psi.impl.PythonLanguageLevelPusher"/>
429
430     <elementDescriptionProvider implementation="com.jetbrains.python.findUsages.PyElementDescriptionProvider"/>
431     <elementDescriptionProvider implementation="com.jetbrains.python.magicLiteral.PyMagicLiteralElementDescriptionProvider"/>
432     <fileStructureGroupRuleProvider implementation="com.jetbrains.python.findUsages.PyFunctionGroupingRuleProvider" id="py-function"/>
433     <usageTypeProvider implementation="com.jetbrains.python.findUsages.PyUsageTypeProvider"/>
434     <usageTargetProvider implementation="com.jetbrains.python.magicLiteral.PyMagicLiteralUsageTargetProvider"/>
435     <importFilteringRule implementation="com.jetbrains.python.findUsages.PyImportFilteringRule"/>
436
437     <multiHostInjector implementation="com.jetbrains.python.codeInsight.regexp.PythonRegexpInjector"/>
438     <lang.parserDefinition language="PythonRegExp"
439                            implementationClass="com.jetbrains.python.codeInsight.regexp.PythonRegexpParserDefinition"/>
440     <lang.syntaxHighlighterFactory language="PythonRegExp"
441                                    implementationClass="com.jetbrains.python.codeInsight.regexp.PythonRegexpSyntaxHighlighterFactory"/>
442     <lang.parserDefinition language="PythonVerboseRegExp"
443                            implementationClass="com.jetbrains.python.codeInsight.regexp.PythonVerboseRegexpParserDefinition"/>
444     <lang.syntaxHighlighterFactory language="PythonVerboseRegExp"
445                                    implementationClass="com.jetbrains.python.codeInsight.regexp.PythonVerboseRegexpSyntaxHighlighterFactory"/>
446
447     <applicationService serviceInterface="com.jetbrains.python.codeInsight.PyCodeInsightSettings"
448                         serviceImplementation="com.jetbrains.python.codeInsight.PyCodeInsightSettings"/>
449     <applicationService serviceInterface="com.jetbrains.python.testing.PyTestFrameworkService"
450                         serviceImplementation="com.jetbrains.python.testing.PyTestFrameworkService"/>
451     <autoImportOptionsProvider instance="com.jetbrains.python.codeInsight.imports.PyAutoImportOptions"/>
452
453     <completion.contributor language="Python"
454                             implementationClass="com.jetbrains.python.codeInsight.completion.PyClassNameCompletionContributor"/>
455     <weigher key="completion" implementationClass="com.jetbrains.python.codeInsight.completion.PythonCompletionWeigher" order="first"/>
456     <completion.confidence language="Python" implementationClass="com.jetbrains.python.codeInsight.completion.PyCompletionConfidence"/>
457     <typedHandler implementation="com.jetbrains.python.console.completion.PythonConsoleAutopopupBlockingHandler" id="pydevBlockAutoPopup"
458                   order="first, before completionAutoPopup"/>
459
460     <referencesSearch implementation="com.jetbrains.python.psi.search.PyInitReferenceSearchExecutor"/>
461     <referencesSearch implementation="com.jetbrains.python.magicLiteral.PyMagicLiteralReferenceSearcher"/>
462     <referencesSearch implementation="com.jetbrains.python.psi.search.PyKeywordArgumentSearchExecutor"/>
463     <referencesSearch implementation="com.jetbrains.python.psi.search.PyStringReferenceSearch"/>
464     <findUsagesHandlerFactory implementation="com.jetbrains.python.findUsages.PyFindUsagesHandlerFactory" id="Python"
465                               order="last, before default"/>
466     <readWriteAccessDetector implementation="com.jetbrains.python.findUsages.PyReadWriteAccessDetector"/>
467     <findUsagesHandlerFactory implementation="com.jetbrains.python.magicLiteral.PyMagicLiteralFindUsagesHandlerFactory"/>
468
469     <renamePsiElementProcessor implementation="com.jetbrains.python.refactoring.rename.RenamePyVariableProcessor" order="last" id="pyvar"/>
470     <renamePsiElementProcessor implementation="com.jetbrains.python.refactoring.rename.RenamePyFunctionProcessor" order="before pyvar"/>
471     <renamePsiElementProcessor implementation="com.jetbrains.python.refactoring.rename.RenamePyClassProcessor" order="before pyvar"/>
472     <renamePsiElementProcessor implementation="com.jetbrains.python.magicLiteral.PyMagicLiteralRenameProcessor" order="before pyvar"/>
473     <renamePsiElementProcessor implementation="com.jetbrains.python.refactoring.rename.RenamePyFileProcessor" order="first"/>
474     <renamePsiElementProcessor implementation="com.jetbrains.python.refactoring.rename.RenameUnsupportedExpressionProcessor"/>
475
476     <automaticRenamerFactory implementation="com.jetbrains.python.refactoring.rename.PyContainingFileRenamerFactory"/>
477     <automaticRenamerFactory implementation="com.jetbrains.python.refactoring.rename.PyInheritorRenameFactory"/>
478     <automaticRenamerFactory implementation="com.jetbrains.python.refactoring.rename.PyParametersRenameFactory"/>
479
480     <moveFileHandler implementation="com.jetbrains.python.refactoring.move.PyMoveFileHandler"/>
481     <refactoring.moveHandler implementation="com.jetbrains.python.refactoring.move.PyMoveSymbolDelegate"/>
482
483     <refactoring.changeSignatureUsageProcessor implementation="com.jetbrains.python.refactoring.changeSignature.PyChangeSignatureUsageProcessor" id="Python"/>
484
485     <lang.importOptimizer language="Python" implementationClass="com.jetbrains.python.codeInsight.imports.PyImportOptimizer"/>
486
487     <codeStyleSettingsProvider implementation="com.jetbrains.python.formatter.PyCodeStyleSettingsProvider"/>
488     <langCodeStyleSettingsProvider implementation="com.jetbrains.python.formatter.PyLanguageCodeStyleSettingsProvider"/>
489
490     <lang.elementManipulator forClass="com.jetbrains.python.psi.PyStringLiteralExpression"
491                              implementationClass="com.jetbrains.python.psi.impl.PyStringLiteralExpressionManipulator"/>
492     <lang.elementManipulator forClass="com.jetbrains.python.psi.PyKeywordArgument"
493                              implementationClass="com.jetbrains.python.psi.impl.PyKeywordArgumentManipulator"/>
494
495     <analyzeStacktraceFilter implementation="com.jetbrains.python.run.PythonTracebackFilter"/>
496
497     <internalFileTemplate name="Python Script"/>
498     <internalFileTemplate name="Python Unit Test"/>
499     <internalFileTemplate name="Setup Script"/>
500
501     <moduleService serviceInterface="com.jetbrains.python.psi.resolve.PythonPathCache"
502                    serviceImplementation="com.jetbrains.python.psi.resolve.PythonModulePathCache"/>
503
504     <problemFileHighlightFilter implementation="com.jetbrains.python.codeInsight.PyProblemFileHighlightFilter"/>
505
506     <editorSmartKeysConfigurable instance="com.jetbrains.python.codeInsight.PySmartKeysOptions"/>
507     <editorSmartKeysConfigurable instance="com.jetbrains.python.codeInsight.PySpecificSmartKeysOptions"/>
508
509     <psi.referenceContributor implementation="com.jetbrains.python.codeInsight.PyStdReferenceContributor"/>
510
511     <applicationService serviceInterface="com.jetbrains.python.documentation.PythonDocumentationMap"
512                         serviceImplementation="com.jetbrains.python.documentation.PythonDocumentationMap"/>
513     <applicationConfigurable groupId="tools" instance="com.jetbrains.python.documentation.PythonDocumentationConfigurable"
514                              id="com.jetbrains.python.documentation.PythonDocumentationConfigurable"
515                              displayName="Python External Documentation"/>
516     <projectConfigurable groupId="tools" instance="com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable"
517                          id="com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable" displayName="Python Integrated Tools"
518                          nonDefaultProject="true"/>
519     <search.optionContributor implementation="com.jetbrains.python.configuration.PySearchableOptionContributor"/>
520     <moduleService serviceInterface="com.jetbrains.python.documentation.PyDocumentationSettings"
521                    serviceImplementation="com.jetbrains.python.documentation.PyDocumentationSettings"/>
522     <psi.referenceContributor implementation="com.jetbrains.python.documentation.docstrings.DocStringReferenceContributor"/>
523     <psi.referenceContributor implementation="com.jetbrains.python.codeInsight.PythonFormattedStringReferenceContributor"/>
524     <completion.contributor language="Python" implementationClass="com.jetbrains.python.documentation.docstrings.DocStringTagCompletionContributor"/>
525     <completion.contributor language="Python" implementationClass="com.jetbrains.python.documentation.docstrings.DocStringSectionHeaderCompletionContributor"/>
526
527     <treeStructureProvider implementation="com.jetbrains.python.projectView.PyTreeStructureProvider"/>
528
529     <project.converterProvider implementation="com.jetbrains.python.testing.converters.PythonTestConverterProvider"/>
530
531     <projectConfigurable groupId="build" dynamic="true" id="pyconsole" instance="com.jetbrains.python.console.PyConsoleOptionsConfigurable"
532                          displayName="Console"/>
533     <projectService serviceImplementation="com.jetbrains.python.console.PyConsoleOptions"/>
534
535     <projectConfigurable groupId="build" groupWeight="119" id="reference.idesettings.debugger.python" instance="com.jetbrains.python.debugger.PyDebuggerConfigurable"
536                          displayName="Python Debugger"/>
537     <projectService serviceImplementation="com.jetbrains.python.debugger.PyDebuggerOptionsProvider"/>
538
539     <codeBlockProvider language="Python" implementationClass="com.jetbrains.python.codeInsight.PyCodeBlockProvider"/>
540
541     <iconProvider implementation="com.jetbrains.python.PyDirectoryIconProvider" id="pyDirectoryDefault"/>
542
543     <projectService serviceInterface="com.jetbrains.python.debugger.PySignatureCacheManager"
544                     serviceImplementation="com.jetbrains.python.debugger.PySignatureCacheManagerImpl"/>
545
546     <projectService serviceInterface="com.jetbrains.python.psi.PyPsiFacade"
547                     serviceImplementation="com.jetbrains.python.psi.impl.PyPsiFacadeImpl"/>
548     <applicationService serviceInterface="com.jetbrains.python.packaging.PyPackageManagers"
549                         serviceImplementation="com.jetbrains.python.packaging.PyPackageManagersImpl"/>
550
551     <qualifiedNameProvider implementation="com.jetbrains.python.actions.PyQualifiedNameProvider"/>
552
553     <externalAnnotator language="Python" implementationClass="com.jetbrains.python.validation.Pep8ExternalAnnotator"/>
554
555     <statistics.usagesCollector implementation="com.jetbrains.python.statistics.PyInterpreterUsagesCollector"/>
556     <statistics.usagesCollector implementation="com.jetbrains.python.statistics.PyPackageUsagesCollector"/>
557
558     <additionalTextAttributes scheme="Default" file="colorSchemes/PythonDefault.xml"/>
559     <additionalTextAttributes scheme="Darcula" file="colorSchemes/PythonDarcula.xml"/>
560
561     <postStartupActivity implementation="com.jetbrains.python.sdk.PythonSdkUpdater"/>
562     <postStartupActivity implementation="com.jetbrains.python.packaging.PyPackagesUpdater"/>
563     <directoryProjectConfigurator implementation="com.jetbrains.python.testing.PyIntegratedToolsProjectConfigurator" id="integratedTools" order="after sdk"/>
564
565
566     <macro implementation="com.jetbrains.python.sdk.InterpreterDirectoryMacro"/>
567
568     <!-- User skeletons -->
569     <codeInsight.lineMarkerProvider language="Python" implementationClass="com.jetbrains.python.codeInsight.userSkeletons.PyUserSkeletonsLineMarkerProvider"/>
570
571     <!-- TestRunnerService -->
572     <moduleService serviceInterface="com.jetbrains.python.testing.TestRunnerService"
573                    serviceImplementation="com.jetbrains.python.testing.TestRunnerService"/>
574
575     <!-- PyDocstring -->
576     <languageInjector implementation="com.jetbrains.python.documentation.doctest.PyDocstringLanguageInjector"/>
577     <lang.parserDefinition language="PyDocstring" implementationClass="com.jetbrains.python.documentation.doctest.PyDocstringParserDefinition"/>
578     <highlightErrorFilter implementation="com.jetbrains.python.documentation.doctest.PyDocstringErrorFilter"/>
579
580     <!-- PyFunctionTypeAnnotation -->
581     <lang.parserDefinition language="PyFunctionTypeComment"
582                            implementationClass="com.jetbrains.python.codeInsight.functionTypeComments.PyFunctionTypeAnnotationParserDefinition"/>
583
584     <!-- Packaging -->
585     <moduleService serviceInterface="com.jetbrains.python.packaging.PyPackageRequirementsSettings"
586                    serviceImplementation="com.jetbrains.python.packaging.PyPackageRequirementsSettings"/>
587
588     <!-- typing -->
589     <multiHostInjector implementation="com.jetbrains.python.codeInsight.typing.PyTypingAnnotationInjector"/>
590     <lang.parserDefinition language="PythonStub" implementationClass="com.jetbrains.python.pyi.PyiParserDefinition"/>
591     <fileTypeFactory implementation="com.jetbrains.python.pyi.PyiFileTypeFactory"/>
592     <codeInsight.lineMarkerProvider language="Python" implementationClass="com.jetbrains.python.pyi.PyiRelatedItemLineMarkerProvider"/>
593
594     <lang.inspectionSuppressor language="Python" implementationClass="com.jetbrains.python.inspections.PyInspectionsSuppressor"/>
595     <refactoring.invertBoolean implementation="com.jetbrains.python.refactoring.invertBoolean.PyInvertBooleanDelegate"/>
596
597     <backspaceHandlerDelegate implementation="com.jetbrains.python.codeInsight.editorActions.PyTripleQuoteBackspaceDelegate"/>
598
599     <!--folding-->
600     <codeFoldingOptionsProvider instance="com.jetbrains.python.PythonFoldingOptionsProvider"/>
601     <applicationService serviceInterface="com.jetbrains.python.PythonFoldingSettings"
602                         serviceImplementation="com.jetbrains.python.PythonFoldingSettings"/>
603
604     <!-- f-strings -->
605     <multiHostInjector implementation="com.jetbrains.python.codeInsight.fstrings.PyFStringsInjector"/>
606
607     <!-- postfix templates!-->
608     <codeInsight.template.postfixTemplateProvider language="Python"
609                                                   implementationClass="com.jetbrains.python.codeInsight.postfix.PyPostfixTemplateProvider"/>
610
611     <breadcrumbsInfoProvider implementation="com.jetbrains.python.breadcrumbs.PyBreadcrumbsInfoProvider"/>
612     <highlightVisitor implementation="com.jetbrains.python.highlighting.PyRainbowVisitor"/>
613
614     <toolWindow id="Data View" factoryClass="com.jetbrains.python.debugger.containerview.PyDataViewToolWindowFactory" anchor="right" icon="PythonIcons.Python.DataView"/>
615     <projectService serviceInterface="com.jetbrains.python.debugger.containerview.PyDataView" serviceImplementation="com.jetbrains.python.debugger.containerview.PyDataView"/>
616   </extensions>
617
618   <extensionPoints>
619     <extensionPoint qualifiedName="Pythonid.pythonDocumentationQuickInfoProvider" interface="com.jetbrains.python.documentation.PythonDocumentationQuickInfoProvider"/>
620     <extensionPoint qualifiedName="Pythonid.importResolver" interface="com.jetbrains.python.psi.impl.PyImportResolver"/>
621     <extensionPoint qualifiedName="Pythonid.magicLiteral" interface="com.jetbrains.python.magicLiteral.PyMagicLiteralExtensionPoint"/>
622     <extensionPoint qualifiedName="Pythonid.unresolvedReferenceSkipper" interface="com.jetbrains.python.inspections.unresolvedReference.PyUnresolvedReferenceSkipperExtPoint"/>
623     <extensionPoint qualifiedName="Pythonid.resolveResultRater" interface="com.jetbrains.python.psi.impl.PyResolveResultRater"/>
624     <extensionPoint qualifiedName="Pythonid.typeProvider" interface="com.jetbrains.python.psi.impl.PyTypeProvider"/>
625     <extensionPoint qualifiedName="Pythonid.pySuperMethodsSearch" interface="com.intellij.util.QueryExecutor"/>
626     <extensionPoint qualifiedName="Pythonid.pyClassInheritorsSearch" interface="com.intellij.util.QueryExecutor"/>
627     <extensionPoint qualifiedName="Pythonid.pyClassMembersProvider" interface="com.jetbrains.python.psi.types.PyClassMembersProvider"/>
628     <extensionPoint qualifiedName="Pythonid.pyModuleMembersProvider" interface="com.jetbrains.python.psi.types.PyModuleMembersProvider"/>
629     <extensionPoint qualifiedName="Pythonid.pyOverridingMethodsSearch" interface="com.intellij.util.QueryExecutor"/>
630     <extensionPoint qualifiedName="Pythonid.runnableScriptFilter" interface="com.jetbrains.python.run.RunnableScriptFilter"/>
631     <extensionPoint qualifiedName="Pythonid.runnableUnitTestFilter" interface="com.jetbrains.python.testing.RunnableUnitTestFilter"/>
632     <extensionPoint qualifiedName="Pythonid.unresolvedReferenceQuickFixProvider"
633                     interface="com.jetbrains.python.inspections.PyUnresolvedReferenceQuickFixProvider"/>
634     <extensionPoint qualifiedName="Pythonid.dumbAnnotator" interface="com.jetbrains.python.validation.PyAnnotator"/>
635     <extensionPoint qualifiedName="Pythonid.inspectionExtension" interface="com.jetbrains.python.inspections.PyInspectionExtension"/>
636     <extensionPoint qualifiedName="Pythonid.customTargetExpressionStubType"
637                     interface="com.jetbrains.python.psi.impl.stubs.CustomTargetExpressionStubType"/>
638     <extensionPoint qualifiedName="Pythonid.knownDecoratorProvider" interface="com.jetbrains.python.psi.PyKnownDecoratorProvider"/>
639     <extensionPoint qualifiedName="Pythonid.documentationLinkProvider" interface="com.jetbrains.python.documentation.PythonDocumentationLinkProvider"/>
640     <extensionPoint qualifiedName="Pythonid.importCandidateProvider" interface="com.jetbrains.python.codeInsight.imports.PyImportCandidateProvider"/>
641     <extensionPoint qualifiedName="Pythonid.dialectsTokenSetContributor" interface="com.jetbrains.python.PythonDialectsTokenSetContributor"/>
642     <extensionPoint qualifiedName="Pythonid.runConfigurationExtension" interface="com.jetbrains.python.run.PythonRunConfigurationExtension"/>
643     <extensionPoint qualifiedName="Pythonid.visitorFilter" beanClass="com.intellij.lang.LanguageExtensionPoint">
644       <with attribute="implementationClass" implements="com.jetbrains.python.inspections.PythonVisitorFilter"/>
645     </extensionPoint>
646     <extensionPoint qualifiedName="Pythonid.remoteInterpreterManager" interface="com.jetbrains.python.remote.PythonRemoteInterpreterManager"/>
647     <extensionPoint qualifiedName="Pythonid.remoteSkeletonGeneratorFactory" interface="com.jetbrains.python.remote.PyRemoteSkeletonGeneratorFactory"/>
648     <extensionPoint qualifiedName="Pythonid.remoteProcessStarterManager" interface="com.jetbrains.python.run.PyRemoteProcessStarterManager"/>
649     <extensionPoint qualifiedName="Pythonid.keywordArgumentProvider" interface="com.jetbrains.python.psi.impl.PyKeywordArgumentProvider"/>
650     <extensionPoint qualifiedName="Pythonid.canonicalPathProvider" interface="com.jetbrains.python.psi.resolve.PyCanonicalPathProvider"/>
651     <extensionPoint qualifiedName="Pythonid.pyReferenceResolveProvider" interface="com.jetbrains.python.psi.resolve.PyReferenceResolveProvider"/>
652     <extensionPoint qualifiedName="Pythonid.breakpointHandler" interface="com.jetbrains.python.debugger.PyBreakpointHandlerFactory"/>
653     <extensionPoint qualifiedName="Pythonid.consoleOptionsProvider" interface="com.jetbrains.python.console.PyConsoleOptionsProvider"/>
654     <extensionPoint qualifiedName="Pythonid.pyRootTypeProvider" interface="com.jetbrains.python.module.PyRootTypeProvider"/>
655     <extensionPoint qualifiedName="Pythonid.runConfigurationEditorExtension" interface="com.jetbrains.python.run.PyRunConfigurationEditorExtension"/>
656     <extensionPoint qualifiedName="Pythonid.pyCustomSdkUiProvider" interface="com.jetbrains.python.sdk.PyCustomSdkUiProvider"/>
657     <extensionPoint qualifiedName="Pythonid.pep8ProblemSuppressor" interface="com.jetbrains.python.validation.Pep8ProblemSuppressor"/>
658     <extensionPoint qualifiedName="Pythonid.pythonFlavorProvider" interface="com.jetbrains.python.sdk.flavors.PythonFlavorProvider"/>
659     <extensionPoint qualifiedName="Pythonid.debugSessionFactory" interface="com.jetbrains.python.debugger.PyDebugSessionFactory"/>
660     <extensionPoint qualifiedName="Pythonid.customPackageIdentifier" interface="com.jetbrains.python.psi.PyCustomPackageIdentifier"/>
661     <extensionPoint qualifiedName="Pythonid.pythonSdkWeightProvider" interface="com.jetbrains.python.sdk.PySdkWeightProvider" />
662   </extensionPoints>
663
664   <extensions defaultExtensionNs="Pythonid">
665     <pySuperMethodsSearch implementation="com.jetbrains.python.psi.search.PySuperMethodsSearchExecutor"/>
666     <pyClassInheritorsSearch implementation="com.jetbrains.python.psi.search.PyClassInheritorsSearchExecutor"/>
667     <pyOverridingMethodsSearch implementation="com.jetbrains.python.psi.search.PyOverridingMethodsSearchExecutor"/>
668     <runnableScriptFilter implementation="com.jetbrains.python.testing.PythonUnitTestRunnableScriptFilter"/>
669     <dumbAnnotator implementation="com.jetbrains.python.validation.DocStringAnnotator"/>
670     <dumbAnnotator implementation="com.jetbrains.python.validation.PyDefinitionsAnnotator"/>
671     <dumbAnnotator implementation="com.jetbrains.python.validation.GeneratorInArgumentListAnnotator"/>
672     <dumbAnnotator implementation="com.jetbrains.python.validation.StarAnnotator"/>
673     <dumbAnnotator implementation="com.jetbrains.python.validation.StringLiteralQuotesAnnotator"/>
674     <dumbAnnotator implementation="com.jetbrains.python.validation.FStringsAnnotator"/>
675     <dumbAnnotator implementation="com.jetbrains.python.validation.DumbAwareHighlightingAnnotator"/>
676
677     <customTargetExpressionStubType implementation="com.jetbrains.python.psi.impl.stubs.PropertyStubType"/>
678     <customTargetExpressionStubType implementation="com.jetbrains.python.psi.impl.stubs.PyNamedTupleStubType"/>
679
680     <dialectsTokenSetContributor implementation="com.jetbrains.python.PythonTokenSetContributor"/>
681     <pyClassMembersProvider implementation="com.jetbrains.python.codeInsight.stdlib.PyStdlibClassMembersProvider"/>
682     <typeProvider implementation="com.jetbrains.python.codeInsight.stdlib.PyStdlibTypeProvider"/>
683     <pyModuleMembersProvider implementation="com.jetbrains.python.codeInsight.stdlib.PyStdlibModuleMembersProvider"/>
684     <documentationLinkProvider implementation="com.jetbrains.python.codeInsight.stdlib.PyStdlibDocumentationLinkProvider"/>
685     <canonicalPathProvider implementation="com.jetbrains.python.codeInsight.stdlib.PyStdlibCanonicalPathProvider"/>
686
687     <!-- typing -->
688     <typeProvider implementation="com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider"/>
689     <typeProvider implementation="com.jetbrains.python.pyi.PyiTypeProvider"/>
690     <pyModuleMembersProvider implementation="com.jetbrains.python.pyi.PyiModuleMembersProvider"/>
691     <pyClassMembersProvider implementation="com.jetbrains.python.pyi.PyiClassMembersProvider"/>
692     <visitorFilter language="PythonStub" implementationClass="com.jetbrains.python.pyi.PyiVisitorFilter"/>
693     <inspectionExtension implementation="com.jetbrains.python.pyi.PyiInspectionExtension"/>
694     <inspectionExtension implementation="com.jetbrains.python.codeInsight.typing.PyTypingInspectionExtension"/>
695     <customPackageIdentifier implementation="com.jetbrains.python.pyi.PyiCustomPackageIdentifier"/>
696
697     <!-- User skeletons -->
698     <pyModuleMembersProvider implementation="com.jetbrains.python.codeInsight.userSkeletons.PyUserSkeletonsModuleMembersProvider"/>
699     <pyClassMembersProvider implementation="com.jetbrains.python.codeInsight.userSkeletons.PyUserSkeletonsClassMembersProvider"/>
700     <typeProvider implementation="com.jetbrains.python.codeInsight.userSkeletons.PyUserSkeletonsTypeProvider"/>
701
702     <typeProvider implementation="com.jetbrains.python.debugger.PyCallSignatureTypeProvider"/>
703     <pyReferenceResolveProvider implementation="com.jetbrains.python.psi.resolve.PythonBuiltinReferenceResolveProvider"/>
704     <pyReferenceResolveProvider implementation="com.jetbrains.python.psi.resolve.PythonOverridingBuiltinReferenceResolveProvider"/>
705
706     <!-- NumPy -->
707     <pyModuleMembersProvider implementation="com.jetbrains.numpy.codeInsight.NumpyModuleMembersProvider"/>
708     <typeProvider implementation="com.jetbrains.numpy.codeInsight.NumpyDocStringTypeProvider"/>
709     <resolveResultRater implementation="com.jetbrains.numpy.codeInsight.NumpyResolveRater"/>
710     <pyClassMembersProvider implementation="com.jetbrains.numpy.codeInsight.NumpyClassMembersProvider"/>
711
712     <!-- PyDocstring -->
713     <typeProvider implementation="com.jetbrains.python.documentation.docstrings.PyDocStringTypeProvider"/>
714     <dialectsTokenSetContributor implementation="com.jetbrains.python.documentation.doctest.PyDocstringTokenSetContributor"/>
715     <visitorFilter language="PyDocstring" implementationClass="com.jetbrains.python.documentation.doctest.PyDocstringVisitorFilter"/>
716
717     <!-- Console -->
718     <visitorFilter language="Python" implementationClass="com.jetbrains.python.console.ConsoleVisitorFilter"/>
719
720     <!-- Packaging -->
721     <keywordArgumentProvider implementation="com.jetbrains.python.packaging.setupPy.SetupKeywordArgumentProvider"/>
722
723     <!-- PyQt -->
724     <typeProvider implementation="com.jetbrains.pyqt.PyQtTypeProvider"/>
725
726     <!-- PyFunctionTypeAnnotation -->
727     <visitorFilter language="PyFunctionTypeComment"
728                    implementationClass="com.jetbrains.python.codeInsight.functionTypeComments.PyFunctionTypeAnnotationVisitorFilter"/>
729
730     <pythonFlavorProvider implementation="com.jetbrains.python.sdk.flavors.MayaFlavorProvider"/>
731   </extensions>
732
733   <actions>
734     <action overrides="true" id="ForceStepInto" class="com.jetbrains.python.debugger.PyForceStepIntoAction" text="Fo_rce Step Into"
735             icon="AllIcons.Debugger.Actions.Force_step_into" description="Step into, ignore stepping filters for libraries, constructors, etc."/>
736
737     <group id="PyTypeHierarchyPopupMenu">
738       <reference ref="TypeHierarchyBase.BaseOnThisType"/>
739       <reference ref="TypeHierarchy.Class"/>
740       <reference ref="TypeHierarchy.Subtypes"/>
741       <reference ref="TypeHierarchy.Supertypes"/>
742       <separator/>
743       <reference ref="EditSource"/>
744       <separator/>
745       <reference ref="FindUsages"/>
746       <reference ref="RefactoringMenu"/>
747       <separator/>
748       <reference ref="AddToFavorites"/>
749       <separator/>
750       <reference ref="ReformatCode"/>
751       <reference ref="OptimizeImports"/>
752       <reference ref="$Delete"/>
753       <separator/>
754       <reference ref="VersionControlsGroup"/>
755       <separator/>
756       <reference ref="ExternalToolsGroup"/>
757       <separator/>
758       <reference ref="CompareTwoFiles"/>
759       <reference ref="CompareFileWithEditor"/>
760     </group>
761
762     <group id="PyCallHierarchyPopupMenu">
763       <reference ref="EditSource"/>
764       <separator/>
765       <reference ref="FindUsages"/>
766       <reference ref="RefactoringMenu"/>
767       <separator/>
768       <reference ref="AddToFavorites"/>
769       <separator/>
770
771       <reference ref="ReformatCode"/>
772       <reference ref="OptimizeImports"/>
773       <separator/>
774       <reference ref="VersionControlsGroup"/>
775
776       <separator/>
777       <reference ref="ExternalToolsGroup"/>
778       <separator/>
779       <reference ref="CompareTwoFiles"/>
780       <reference ref="CompareFileWithEditor"/>
781     </group>
782
783     <!-- Console -->
784     <action id="com.jetbrains.python.console.RunPythonConsoleAction"
785             class="com.jetbrains.python.console.RunPythonConsoleAction"
786             text="Python Console..." description="Allows to quickly run Python console">
787       <add-to-group group-id="ToolsMenu" anchor="last"/>
788     </action>
789
790     <action id="com.jetbrains.python.console.PyOpenDebugConsoleAction"
791             class="com.jetbrains.python.console.PyOpenDebugConsoleAction"
792             text="Open Debug Command Line" description="Opens debug command line for running process">
793       <add-to-group group-id="ToolsMenu" anchor="last"/>
794     </action>
795
796     <action id="ExecuteInPyConsoleAction"
797             class="com.jetbrains.python.actions.PyExecuteSelectionAction"
798             text="Execute selection in console"
799             description="Executes selected code fragment in Python/Django console">
800       <add-to-group group-id="EditorPopupMenu" anchor="before" relative-to-action="CompareClipboardWithSelection"/>
801
802       <keyboard-shortcut keymap="$default" first-keystroke="alt shift E"/>
803       <keyboard-shortcut keymap="Mac OS X" first-keystroke="control shift E" />
804       <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="control shift E" />
805       <keyboard-shortcut keymap="Eclipse" first-keystroke="ctrl alt E" replace-all="true"/>
806       <keyboard-shortcut keymap="NetBeans 6.5" first-keystroke="ctrl alt E" replace-all="true"/>
807     </action>
808
809     <action id="NewPythonFile" class="com.jetbrains.python.actions.CreatePythonFileAction">
810       <add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewXml"/>
811     </action>
812
813     <action id="NewPythonPackage" class="com.jetbrains.python.actions.CreatePackageAction" text="Python Package"
814             description="Create a new directory and __init__.py inside it" icon="AllIcons.Nodes.Package">
815       <add-to-group group-id="NewGroup" anchor="after" relative-to-action="NewDir"/>
816     </action>
817
818     <action id="CompuleQrc" class="com.jetbrains.pyqt.CompileQrcAction" text="Compile .qrc file">
819       <add-to-group group-id="ProjectViewPopupMenuRunGroup" anchor="first"/>
820     </action>
821
822     <action id="CleanPyc" class="com.jetbrains.python.actions.CleanPycAction" text="Clean Python Compiled Files"
823             description="Delete compiled bytecode files in selected directory and its subdirectories">
824       <add-to-group group-id="ProjectViewPopupMenu" anchor="after" relative-to-action="ProjectViewPopupMenuRefactoringGroup"/>
825     </action>
826
827     <group id="PyPackagingMenu" text="Packaging">
828       <action id="CreateSetupPy" class="com.jetbrains.python.packaging.setupPy.CreateSetupPyAction"/>
829       <action id="RunSetupPyTask" class="com.jetbrains.python.packaging.setupPy.SetupTaskChooserAction"/>
830       <add-to-group group-id="ToolsMenu" anchor="last"/>
831     </group>
832
833     <action id="PythonGenerateDictionaries" class="com.jetbrains.python.spellchecker.PythonSpellcheckerGenerateDictionariesAction"
834             text="Generate Python Spellchecker Dictionaries" internal="true">
835       <add-to-group group-id="Internal"/>
836     </action>
837
838     <action id="PyDebugger.ViewArray" class="com.jetbrains.python.debugger.containerview.PyViewNumericContainerAction" text="View as Array">
839       <add-to-group group-id="XDebugger.ValueGroup" anchor="after" relative-to-action="Debugger.Tree.AddToWatches"/>
840     </action>
841
842     <action id="PyConvertModuleToPackage" class="com.jetbrains.python.refactoring.convertModulePackage.PyConvertModuleToPackageAction"
843             text="Convert to Python Package"
844             description="Create package with the same name and move content of the module to its __init__.py">
845       <add-to-group group-id="RefactoringMenu" anchor="last" />
846     </action>
847
848     <action id="PyConvertPackageToModuleAction" class="com.jetbrains.python.refactoring.convertModulePackage.PyConvertPackageToModuleAction"
849             text="Convert to Python Module"
850             description="Create module with the same name and move content of __init__.py to that module">
851       <add-to-group group-id="RefactoringMenu" anchor="last" />
852     </action>
853
854     <action id="StepIntoMyCode" class="com.jetbrains.python.debugger.PyStepIntoMyCodeAction" icon="PythonIcons.Python.Debug.StepIntoMyCode"
855             text="Step Into My Code" description="Step to the next line executed ignoring libraries"
856             use-shortcut-of="ForceStepInto">
857       <add-to-group group-id="DebugMainMenu" relative-to-action="StepInto" anchor="after"/>
858       <add-to-group group-id="XDebugger.ToolWindow.TopToolbar" relative-to-action="StepInto" anchor="after"/>
859     </action>
860   </actions>
861
862   <extensions defaultExtensionNs="com.intellij.spellchecker">
863     <support language="Python" implementationClass="com.jetbrains.python.spellchecker.PythonSpellcheckerStrategy"/>
864     <bundledDictionaryProvider implementation="com.jetbrains.python.spellchecker.PythonBundledDictionaryProvider"/>
865   </extensions>
866
867   <application-components>
868     <component>
869       <implementation-class>com.jetbrains.python.testing.VFSTestFrameworkListener</implementation-class>
870     </component>
871     <component>
872       <implementation-class>com.jetbrains.python.testing.universalTests.PyUniversalTestLegacyInteropInitializer</implementation-class>
873     </component>
874   </application-components>
875 </idea-plugin>