diff --git a/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaDefaultLiveTemplatesProvider.java b/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaDefaultLiveTemplatesProvider.java index 0da472da4a97..05d6951d7c64 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaDefaultLiveTemplatesProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaDefaultLiveTemplatesProvider.java @@ -32,4 +32,9 @@ public class JavaDefaultLiveTemplatesProvider implements DefaultLiveTemplatesPro public String[] getDefaultLiveTemplateFiles() { return DEFAULT_TEMPLATES; } + + @Override + public String[] getHiddenLiveTemplateFiles() { + return null; + } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/DefaultLiveTemplatesProvider.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/DefaultLiveTemplatesProvider.java index 3a92d7b35d8a..10ec3f5e4fed 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/DefaultLiveTemplatesProvider.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/DefaultLiveTemplatesProvider.java @@ -17,6 +17,7 @@ package com.intellij.codeInsight.template.impl; import com.intellij.openapi.extensions.ExtensionPointName; +import org.jetbrains.annotations.Nullable; /** * @author yole @@ -25,4 +26,7 @@ public interface DefaultLiveTemplatesProvider { ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.defaultLiveTemplatesProvider"); String[] getDefaultLiveTemplateFiles(); + + @Nullable + String[] getHiddenLiveTemplateFiles(); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java index 3b8aa413476f..df3b12898a57 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java @@ -109,10 +109,7 @@ public class TemplateSettings implements PersistentStateComponent, Expo private int myMaxKeyLength = 0; private char myDefaultShortcutChar = TAB_CHAR; private String myLastSelectedTemplateKey; - @NonNls - public static final String XML_EXTENSION = ".xml"; private final SchemesManager mySchemesManager; - private final SchemeProcessor myProcessor; private static final String FILE_SPEC = "$ROOT_CONFIG$/templates"; private static class TemplateKey { @@ -149,10 +146,10 @@ public class TemplateSettings implements PersistentStateComponent, Expo public TemplateSettings(SchemesManagerFactory schemesManagerFactory) { - - myProcessor = new BaseSchemeProcessor() { + SchemeProcessor processor = new BaseSchemeProcessor() { + @Nullable public TemplateGroup readScheme(final Document schemeContent) - throws InvalidDataException, IOException, JDOMException { + throws InvalidDataException, IOException, JDOMException { return readTemplateFile(schemeContent, schemeContent.getRootElement().getAttributeValue("group"), false, false, getClass().getClassLoader()); } @@ -201,7 +198,7 @@ public class TemplateSettings implements PersistentStateComponent, Expo } }; - mySchemesManager = schemesManagerFactory.createSchemesManager(FILE_SPEC, myProcessor, RoamingType.PER_USER); + mySchemesManager = schemesManagerFactory.createSchemesManager(FILE_SPEC, processor, RoamingType.PER_USER); loadTemplates(); } @@ -320,6 +317,7 @@ public class TemplateSettings implements PersistentStateComponent, Expo return myTemplates.get(key); } + @Nullable public TemplateImpl getTemplate(@NonNls String key, String group) { final Collection templates = myTemplates.get(key); for (TemplateImpl template : templates) { @@ -368,10 +366,6 @@ public class TemplateSettings implements PersistentStateComponent, Expo } private void addTemplateImpl(Template template) { - addTemplateImpl(template, false); - } - - private void addTemplateImpl(Template template, boolean overwrite) { final TemplateImpl templateImpl = (TemplateImpl)template; if (getTemplate(templateImpl.getKey(), templateImpl.getGroupName()) == null) { myTemplates.putValue(template.getKey(), templateImpl); @@ -451,7 +445,7 @@ public class TemplateSettings implements PersistentStateComponent, Expo Collection templates = group.getElements(); for (TemplateImpl template : templates) { - addTemplateImpl(template, true); + addTemplateImpl(template); } } @@ -462,10 +456,12 @@ public class TemplateSettings implements PersistentStateComponent, Expo try { for(DefaultLiveTemplatesProvider provider: Extensions.getExtensions(DefaultLiveTemplatesProvider.EP_NAME)) { for (String defTemplate : provider.getDefaultLiveTemplateFiles()) { - String templateName = getDefaultTemplateName(defTemplate); - InputStream inputStream = DecodeDefaultsUtil.getDefaultsInputStream(provider, defTemplate); - if (inputStream != null) { - readDefTemplateFile(inputStream, templateName, provider.getClass().getClassLoader()); + readDefTemplate(provider, defTemplate, true); + } + String[] hidden = provider.getHiddenLiveTemplateFiles(); + if (hidden != null) { + for (String s : hidden) { + readDefTemplate(provider, s, false); } } } @@ -474,21 +470,21 @@ public class TemplateSettings implements PersistentStateComponent, Expo } } + private void readDefTemplate(DefaultLiveTemplatesProvider provider, String defTemplate, boolean registerTemplate) + throws JDOMException, InvalidDataException, IOException { + String templateName = getDefaultTemplateName(defTemplate); + InputStream inputStream = DecodeDefaultsUtil.getDefaultsInputStream(provider, defTemplate); + if (inputStream != null) { + readDefTemplateFile(inputStream, templateName, provider.getClass().getClassLoader(), registerTemplate); + } + } + public static String getDefaultTemplateName(String defTemplate) { return defTemplate.substring(defTemplate.lastIndexOf("/") + 1); } - public void readDefTemplateFile(InputStream inputStream, String defGroupName) throws JDOMException, InvalidDataException, IOException { - readDefTemplateFile(inputStream, defGroupName, getClass().getClassLoader()); - } - - public void readDefTemplateFile(InputStream inputStream, String defGroupName, ClassLoader classLoader) throws JDOMException, InvalidDataException, IOException { - readTemplateFile(JDOMUtil.loadDocument(inputStream), defGroupName, true, true, classLoader); - } - - @Nullable - public TemplateGroup readTemplateFile(Document document, @NonNls String defGroupName, boolean isDefault, boolean registerTemplate) throws InvalidDataException { - return readTemplateFile(document, defGroupName, isDefault, registerTemplate, getClass().getClassLoader() ); + public void readDefTemplateFile(InputStream inputStream, String defGroupName, ClassLoader classLoader, boolean registerTemplate) throws JDOMException, InvalidDataException, IOException { + readTemplateFile(JDOMUtil.loadDocument(inputStream), defGroupName, true, registerTemplate, classLoader); } @Nullable @@ -635,7 +631,7 @@ public class TemplateSettings implements PersistentStateComponent, Expo Element contextElement = new Element(CONTEXT); template.getTemplateContext().writeExternal(contextElement); element.addContent(contextElement); - } catch (WriteExternalException e) { + } catch (WriteExternalException ignore) { } templateSetElement.addContent(element); } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenLiveTemplatesProvider.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenLiveTemplatesProvider.java index 64001f4c6f74..4adaf2d4348b 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenLiveTemplatesProvider.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenLiveTemplatesProvider.java @@ -22,4 +22,9 @@ public class MavenLiveTemplatesProvider implements DefaultLiveTemplatesProvider public String[] getDefaultLiveTemplateFiles() { return new String[]{"/liveTemplates/maven_xml"}; } + + @Override + public String[] getHiddenLiveTemplateFiles() { + return null; + } } diff --git a/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/XPathAppComponent.java b/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/XPathAppComponent.java index bc67fae601e1..583f7f61fef0 100644 --- a/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/XPathAppComponent.java +++ b/plugins/xpath/xpath-view/src/org/intellij/plugins/xpathView/XPathAppComponent.java @@ -244,4 +244,9 @@ public class XPathAppComponent implements ApplicationComponent, JDOMExternalizab public String[] getDefaultLiveTemplateFiles() { return new String[] {"/liveTemplates/xsl"}; } + + @Override + public String[] getHiddenLiveTemplateFiles() { + return null; + } } diff --git a/xml/impl/src/com/intellij/codeInsight/template/XmlDefaultLiveTemplatesProvider.java b/xml/impl/src/com/intellij/codeInsight/template/XmlDefaultLiveTemplatesProvider.java index 7991581bfb17..9b13138bd37e 100644 --- a/xml/impl/src/com/intellij/codeInsight/template/XmlDefaultLiveTemplatesProvider.java +++ b/xml/impl/src/com/intellij/codeInsight/template/XmlDefaultLiveTemplatesProvider.java @@ -24,4 +24,9 @@ public class XmlDefaultLiveTemplatesProvider implements DefaultLiveTemplatesProv public String[] getDefaultLiveTemplateFiles() { return new String[] { "/liveTemplates/html_xml", "/liveTemplates/zen_html", "/liveTemplates/zen_xsl" }; } + + @Override + public String[] getHiddenLiveTemplateFiles() { + return null; + } }