remove hard dependency of python-rest on django

This commit is contained in:
Dmitry Jemerov
2013-09-18 19:36:28 +02:00
parent 3dcce7d47f
commit 4ce0f0a737
3 changed files with 14 additions and 8 deletions
+1 -1
View File
@@ -11,10 +11,10 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="lang-impl" />
<orderEntry type="module" module-name="rest" />
<orderEntry type="module" module-name="python" />
<orderEntry type="library" name="Guava" level="project" />
<orderEntry type="module" module-name="testFramework" scope="TEST" />
<orderEntry type="module" module-name="python-tests" scope="TEST" />
<orderEntry type="module" module-name="python-community" />
</component>
</module>
@@ -4,11 +4,12 @@ import com.intellij.openapi.editor.colors.EditorColors;
import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.editor.ex.util.LayerDescriptor;
import com.intellij.openapi.editor.ex.util.LayeredLexerEditorHighlighter;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.jetbrains.django.lang.template.DjangoTemplateFileType;
import com.jetbrains.python.PythonFileType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -26,9 +27,12 @@ public class RestEditorHighlighter extends LayeredLexerEditorHighlighter {
registerLayer(RestTokenTypes.PYTHON_LINE, new LayerDescriptor(
SyntaxHighlighterFactory.getSyntaxHighlighter(PythonFileType.INSTANCE, project, file), "", EditorColors.INJECTED_LANGUAGE_FRAGMENT));
registerLayer(RestTokenTypes.DJANGO_LINE, new LayerDescriptor(
SyntaxHighlighterFactory.getSyntaxHighlighter(DjangoTemplateFileType.INSTANCE, project, file), "", EditorColors.INJECTED_LANGUAGE_FRAGMENT));
FileType djangoTemplateFileType = FileTypeManager.getInstance().findFileTypeByName("DjangoTemplate");
if (djangoTemplateFileType != null) {
registerLayer(RestTokenTypes.DJANGO_LINE, new LayerDescriptor(
SyntaxHighlighterFactory.getSyntaxHighlighter(djangoTemplateFileType, project, file), "",
EditorColors.INJECTED_LANGUAGE_FRAGMENT));
}
registerLayer(RestTokenTypes.JAVASCRIPT_LINE, new LayerDescriptor(
SyntaxHighlighterFactory.getSyntaxHighlighter(StdFileTypes.JS, project, file), "", EditorColors.INJECTED_LANGUAGE_FRAGMENT));
@@ -10,7 +10,6 @@ import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.psi.impl.source.PsiFileImpl;
import com.intellij.psi.templateLanguages.TemplateLanguageFileViewProvider;
import com.jetbrains.django.lang.template.DjangoTemplateLanguage;
import com.jetbrains.python.PythonLanguage;
import org.jetbrains.annotations.NotNull;
@@ -51,7 +50,10 @@ public class RestFileViewProvider extends MultiplePsiFilesPerDocumentFileViewPro
if (myLanguages == null) {
myLanguages = Sets.newLinkedHashSet();
myLanguages.add(getBaseLanguage());
myLanguages.add(DjangoTemplateLanguage.INSTANCE);
Language djangoTemplateLanguage = Language.findLanguageByID("DjangoTemplate");
if (djangoTemplateLanguage != null) {
myLanguages.add(djangoTemplateLanguage);
}
myLanguages.add(getTemplateDataLanguage());
}
return myLanguages;
@@ -66,7 +68,7 @@ public class RestFileViewProvider extends MultiplePsiFilesPerDocumentFileViewPro
file.setContentElementType(RestPythonElementTypes.PYTHON_BLOCK_DATA);
return file;
}
else if (lang == DjangoTemplateLanguage.INSTANCE) {
else if (lang.getID().equals("DjangoTemplate")) {
PsiFileImpl file = (PsiFileImpl)def.createFile(this);
file.setContentElementType(RestPythonElementTypes.DJANGO_BLOCK_DATA);
return file;