diff --git a/python/openapi/src/com/jetbrains/python/templateLanguages/TemplatesService.java b/python/openapi/src/com/jetbrains/python/templateLanguages/TemplatesService.java index fb887079e376..c527e39e6adc 100644 --- a/python/openapi/src/com/jetbrains/python/templateLanguages/TemplatesService.java +++ b/python/openapi/src/com/jetbrains/python/templateLanguages/TemplatesService.java @@ -1,14 +1,21 @@ package com.jetbrains.python.templateLanguages; +import com.google.common.collect.Lists; +import com.intellij.lang.Language; +import com.intellij.lang.LanguageExtensionPoint; +import com.intellij.openapi.application.Application; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; +import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleServiceManager; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.LanguageSubstitutors; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xmlb.XmlSerializerUtil; +import com.intellij.util.xmlb.annotations.Transient; import java.util.ArrayList; import java.util.Collections; @@ -17,12 +24,7 @@ import java.util.List; /** * User: catherine */ -@State(name = "TemplatesService", - storages = { - @Storage( file = "$MODULE_FILE$") - } -) -public class TemplatesService implements PersistentStateComponent { +public abstract class TemplatesService { public static final String NONE = "None"; public static final String DJANGO = "Django"; public static final String MAKO = "Mako"; @@ -31,12 +33,9 @@ public class TemplatesService implements PersistentStateComponent ALL_TEMPLATE_LANGUAGES = ContainerUtil.immutableList(NONE, DJANGO, MAKO, - JINJA2); + JINJA2); - public String TEMPLATE_CONFIGURATION = NONE; - public boolean TEMPLATES_IN_JAVASCRIPT = false; - public List TEMPLATE_FOLDERS = new ArrayList(); - private final List myTemplateFolders = new ArrayList(); + public abstract Language getSelectedTemplateLanguage(); public static TemplatesService getInstance(Module module) { return ModuleServiceManager.getService(module, TemplatesService.class); @@ -46,57 +45,17 @@ public class TemplatesService implements PersistentStateComponent getTemplateFolders(); - private void locateTemplateFolders() { - myTemplateFolders.clear(); - for (String path : TEMPLATE_FOLDERS) { - final VirtualFile virtualFile = LocalFileSystem.getInstance().findFileByPath(path); - if (virtualFile != null) { - myTemplateFolders.add(virtualFile); - } - } - } + public abstract void setTemplateFolders(VirtualFile... roots); - public void setTemplateLanguage(String templateLanguage) { - TEMPLATE_CONFIGURATION = templateLanguage; - } + public abstract void setTemplateFolderPaths(String... paths); - public List getTemplateFolders() { - List result = new ArrayList(); - for (VirtualFile templateFolder : myTemplateFolders) { - if (templateFolder.isValid()) { - result.add(templateFolder); - } - } - return result; - } + public abstract String getTemplateLanguage(); - public void setTemplateFolders(VirtualFile... roots) { - myTemplateFolders.clear(); - Collections.addAll(myTemplateFolders, roots); - TEMPLATE_FOLDERS.clear(); - for (VirtualFile root : roots) { - TEMPLATE_FOLDERS.add(root.getPath()); - } - } - - public void setTemplateFolderPaths(String... paths) { - TEMPLATE_FOLDERS.clear(); - Collections.addAll(TEMPLATE_FOLDERS, paths); - locateTemplateFolders(); - } - - public String getTemplateLanguage() { - return TEMPLATE_CONFIGURATION; - } + public abstract List getTemplateFileTypes(); + public abstract void setTemplateFileTypes(List fileTypes); } + diff --git a/python/src/META-INF/python-plugin-common.xml b/python/src/META-INF/python-plugin-common.xml index fc4fa9966eeb..68cda1278cba 100644 --- a/python/src/META-INF/python-plugin-common.xml +++ b/python/src/META-INF/python-plugin-common.xml @@ -448,10 +448,6 @@ - - - - + serviceImplementation="com.jetbrains.python.templateLanguages.TemplatesServiceImpl"/>