initial integration of Alexei Orischenko's Django plugin

This commit is contained in:
Dmitry Jemerov
2009-12-17 16:21:18 +03:00
parent 5fc100fddf
commit b96c3282d6
5 changed files with 57 additions and 3 deletions

View File

@@ -20,7 +20,9 @@
<extensions defaultExtensionNs="com.intellij">
<moduleType id="PYTHON_MODULE" implementationClass="com.jetbrains.python.module.PythonModuleType"/>
<facetType implementation="com.jetbrains.python.facet.PythonFacetType"/>
<facetType implementation="com.jetbrains.django.facet.DjangoFacetType"/>
<frameworkSupport implementation="com.jetbrains.python.facet.PythonFrameworkSupportProvider"/>
<frameworkSupport implementation="com.jetbrains.django.facet.DjangoFacetSupportProvider"/>
<moduleConfigurationEditorProvider implementation="com.jetbrains.python.module.PythonModuleConfigurationEditorProvider"/>
</extensions>

View File

@@ -5,11 +5,11 @@ import com.intellij.ide.util.frameworkSupport.FrameworkSupportUtil;
import com.intellij.ide.util.newProjectWizard.SupportForFrameworksStep;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.module.ModuleTypeManager;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainerFactory;
import com.intellij.openapi.util.IconLoader;
import com.jetbrains.python.PythonModuleTypeBase;
import org.jetbrains.annotations.NonNls;
import javax.swing.*;
@@ -19,7 +19,7 @@ import java.util.List;
/**
* @author yole
*/
public class PythonModuleType extends ModuleType<PythonModuleBuilder> {
public class PythonModuleType extends PythonModuleTypeBase<PythonModuleBuilder> {
@NonNls public static final String PYTHON_MODULE = "PYTHON_MODULE";
private final Icon myBigIcon = IconLoader.getIcon("/com/jetbrains/python/python_24.png");
private final Icon myOpenIcon = IconLoader.getIcon("/com/jetbrains/python/pythonOpen.png");

View File

@@ -5,7 +5,6 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/helpers" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/pluginResources" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/pySrc" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/lib/cachedir" />
</content>
@@ -30,6 +29,9 @@
<orderEntry type="module" module-name="smRunner" />
<orderEntry type="module" module-name="platform-ultimate" />
<orderEntry type="module" module-name="ultimate-verifier" />
<orderEntry type="module" module-name="xml-openapi" />
<orderEntry type="library" name="OroMatcher" level="project" />
<orderEntry type="module" module-name="xml" />
</component>
<component name="copyright">
<Base>

View File

@@ -96,6 +96,33 @@
<lang.refactoringSupport language="Python" implementationClass="com.jetbrains.python.refactoring.RefactoringProvider"/>
<codeInsight.gotoSuper language="Python" implementationClass="com.jetbrains.python.codeInsight.PyGotoSuperHandler"/>
<gotoDeclarationHandler implementation="com.jetbrains.python.codeInsight.PyBreakContinueGotoProvider" order="FIRST"/>
<!-- Django -->
<annotator language="Python" implementationClass="com.jetbrains.django.annotator.ViewMethodAnnotator"/>
<configurationType implementation="com.jetbrains.django.run.DjangoServerRunConfigurationType"/>
<lang.substitutor language="XHTML" implementationClass="com.jetbrains.django.lang.template.DjangoTemplateLanguageProvider"/>
<lang.substitutor language="HTML" implementationClass="com.jetbrains.django.lang.template.DjangoTemplateLanguageProvider"/>
<lang.substitutor language="XML" implementationClass="com.jetbrains.django.lang.template.DjangoTemplateLanguageProvider"/>
<lang.parserDefinition language="DjangoTemplate"
implementationClass="com.jetbrains.django.lang.template.parsing.DjangoTemplateParserDefinition"/>
<lang.fileViewProviderFactory language="DjangoTemplate"
implementationClass="com.jetbrains.django.lang.template.DjangoTemplateFileProviderFactory"/>
<lang.ast.factory language="DjangoTemplate" implementationClass="com.jetbrains.django.lang.template.psi.impl.DjangoASTFactory"/>
<lang.syntaxHighlighterFactory key="DjangoTemplate"
implementationClass="com.jetbrains.django.lang.template.highlighting.DjangoTemplateHighlighterFactory"/>
<completion.contributor language="DjangoTemplate"
implementationClass="com.jetbrains.django.completion.DjangoNameCompletionContributor"/>
<psi.referenceContributor implementation="com.jetbrains.django.ref.ViewMethodReferenceContributor"/>
<inspectionToolProvider implementation="com.jetbrains.django.inspection.DjangoInspectionToolProvider"/>
<moduleService serviceInterface="com.jetbrains.django.model.TemplateManager"
serviceImplementation="com.jetbrains.django.model.TemplateManager"/>
</extensions>
<extensionPoints>
@@ -114,6 +141,9 @@
<pyOverridingMethodsSearch implementation="com.jetbrains.python.psi.search.PyOverridingMethodsSearchExecutor"/>
<runnableScriptFilter implementation="com.jetbrains.python.testing.pytest.PyTestRunnableScriptFilter"/>
<runnableScriptFilter implementation="com.jetbrains.python.testing.PythonUnitTestRunnableScriptFilter"/>
<!-- Django -->
<unresolvedReferenceQuickFixProvider implementation="com.jetbrains.django.ref.DjangoViewReferenceQuickFixProvider"/>
</extensions>
<project-components>
@@ -159,5 +189,11 @@
<reference ref="CompareFileWithEditor"/>
</group>
<action id="Django.RunManageTaskAction" class="com.jetbrains.django.actions.RunManageTaskAction"
text="Run manage.py task..."
description="Runs manage.py task">
<add-to-group group-id="ToolsMenu" anchor="first"/>
</action>
</actions>
</idea-plugin>

View File

@@ -0,0 +1,14 @@
package com.jetbrains.python;
import com.intellij.ide.util.projectWizard.ModuleBuilder;
import com.intellij.openapi.module.ModuleType;
import org.jetbrains.annotations.NonNls;
/**
* @author yole
*/
public abstract class PythonModuleTypeBase<T extends ModuleBuilder> extends ModuleType<T> {
protected PythonModuleTypeBase(@NonNls String id) {
super(id);
}
}