From 7b85c24621d5c123aff199b1f5b6b451a4c9650f Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Thu, 24 Apr 2008 12:04:48 +0000 Subject: [PATCH] Additional vartiable resolvers for file templates --- .../template/c/FileTemplateContextType.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/template/c/FileTemplateContextType.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/template/c/FileTemplateContextType.java index 2a6384a073c..dc81102920f 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/template/c/FileTemplateContextType.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/template/c/FileTemplateContextType.java @@ -170,11 +170,22 @@ public class FileTemplateContextType extends TemplateContextType { } protected void addResourceVariables() { - addResolver(new FileTemplateVariableResolver(FILENAME, TemplateMessages.FileTemplateContextType_variable_description_filename)); - addResolver(new FileTemplateVariableResolver(FILEBASE, TemplateMessages.FileTemplateContextType_variable_description_filebase)); - addResolver(new FileTemplateVariableResolver(FILELOCATION, TemplateMessages.FileTemplateContextType_variable_description_fileloc)); - addResolver(new FileTemplateVariableResolver(FILEPATH, TemplateMessages.FileTemplateContextType_variable_description_filepath)); - addResolver(new FileTemplateVariableResolver(PROJECTNAME, TemplateMessages.FileTemplateContextType_variable_description_projectname)); + addResolver(new FileTemplateVariableResolver(FILENAME, TemplateMessages.FileTemplateContextType_variable_description_filename)); + addResolver(new FileTemplateVariableResolver(FILEBASE, TemplateMessages.FileTemplateContextType_variable_description_filebase)); + addResolver(new FileTemplateVariableResolver(FILELOCATION, TemplateMessages.FileTemplateContextType_variable_description_fileloc)); + addResolver(new FileTemplateVariableResolver(FILEPATH, TemplateMessages.FileTemplateContextType_variable_description_filepath)); + addResolver(new FileTemplateVariableResolver(PROJECTNAME, TemplateMessages.FileTemplateContextType_variable_description_projectname)); + } + + @Override + protected TemplateVariableResolver getResolver(String type) { + // compatibility with editor template variables + if ("file".equals(type)) { //$NON-NLS-1$ + type= FILENAME; + } else if ("project".equals(type) || "enclosing_project".equals(type)) { //$NON-NLS-1$ //$NON-NLS-2$ + type= PROJECTNAME; + } + return super.getResolver(type); } @Override @@ -183,16 +194,16 @@ public class FileTemplateContextType extends TemplateContextType { for (int i= 0; i < variables.length; i++) { String type= variables[i].getType(); if (getResolver(type) == null) { - throw new TemplateException(Messages.format(TemplateMessages.FileTemplateContextType_validate_unknownvariable, type)); + throw new TemplateException(Messages.format(TemplateMessages.FileTemplateContextType_validate_unknownvariable, type)); } required.remove(type); } if (!required.isEmpty()) { String missing= required.get(0); - throw new TemplateException(Messages.format(TemplateMessages.FileTemplateContextType_validate_missingvariable, missing)); + throw new TemplateException(Messages.format(TemplateMessages.FileTemplateContextType_validate_missingvariable, missing)); } super.validateVariables(variables); - } + } /* * @see org.eclipse.jface.text.templates.TemplateContextType#resolve(org.eclipse.jface.text.templates.TemplateVariable, org.eclipse.jface.text.templates.TemplateContext)