mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-29 11:55:40 +02:00
Fix for 191178: todo variable for templates
This commit is contained in:
parent
9c110c533f
commit
e32c4a4380
3 changed files with 64 additions and 8 deletions
|
@ -1,5 +1,5 @@
|
||||||
#########################################
|
#########################################
|
||||||
# Copyright (c) 2005 IBM Corporation and others.
|
# Copyright (c) 2005, 2007 IBM Corporation and others.
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
# are made available under the terms of the Eclipse Public License v1.0
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
# which accompanies this distribution, and is available at
|
# which accompanies this distribution, and is available at
|
||||||
|
@ -8,6 +8,7 @@
|
||||||
# Contributors:
|
# Contributors:
|
||||||
# IBM Corporation - initial API and implementation
|
# IBM Corporation - initial API and implementation
|
||||||
# QnX Software System
|
# QnX Software System
|
||||||
|
# Anton Leherbauer (Wind River Systems)
|
||||||
#########################################
|
#########################################
|
||||||
|
|
||||||
GlobalVariables.variable.description.dollar=The dollar symbol
|
GlobalVariables.variable.description.dollar=The dollar symbol
|
||||||
|
@ -34,3 +35,4 @@ CContextType.variable.description.enclosing.type=Enclosing type name
|
||||||
CContextType.variable.description.enclosing.project=Enclosing project name
|
CContextType.variable.description.enclosing.project=Enclosing project name
|
||||||
CContextType.variable.description.enclosing.method.arguments=Argument names of enclosing method
|
CContextType.variable.description.enclosing.method.arguments=Argument names of enclosing method
|
||||||
CContextType.variable.description.return.type=Enclosing method return type
|
CContextType.variable.description.return.type=Enclosing method return type
|
||||||
|
CContextType.variable.description.todo=Todo task tag
|
||||||
|
|
|
@ -13,9 +13,6 @@
|
||||||
|
|
||||||
package org.eclipse.cdt.internal.corext.template.c;
|
package org.eclipse.cdt.internal.corext.template.c;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
|
||||||
import org.eclipse.cdt.core.model.IFunctionDeclaration;
|
|
||||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
|
||||||
import org.eclipse.jface.text.IDocument;
|
import org.eclipse.jface.text.IDocument;
|
||||||
import org.eclipse.jface.text.Position;
|
import org.eclipse.jface.text.Position;
|
||||||
import org.eclipse.jface.text.templates.GlobalTemplateVariables;
|
import org.eclipse.jface.text.templates.GlobalTemplateVariables;
|
||||||
|
@ -23,6 +20,13 @@ import org.eclipse.jface.text.templates.TemplateContext;
|
||||||
import org.eclipse.jface.text.templates.TemplateContextType;
|
import org.eclipse.jface.text.templates.TemplateContextType;
|
||||||
import org.eclipse.jface.text.templates.TemplateVariableResolver;
|
import org.eclipse.jface.text.templates.TemplateVariableResolver;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
|
import org.eclipse.cdt.core.model.IFunctionDeclaration;
|
||||||
|
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.internal.ui.codemanipulation.StubUtility;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A context type for translation units.
|
* A context type for translation units.
|
||||||
*/
|
*/
|
||||||
|
@ -144,6 +148,26 @@ public abstract class TranslationUnitContextType extends TemplateContextType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static class Todo extends TemplateVariableResolver {
|
||||||
|
|
||||||
|
public Todo() {
|
||||||
|
super("todo", TemplateMessages.getString("CContextType.variable.description.todo")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
}
|
||||||
|
protected String resolve(TemplateContext context) {
|
||||||
|
TranslationUnitContext cContext= (TranslationUnitContext) context;
|
||||||
|
ITranslationUnit tUnit= cContext.getTranslationUnit();
|
||||||
|
if (tUnit == null)
|
||||||
|
return "XXX"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
ICProject cProject= tUnit.getCProject();
|
||||||
|
String todoTaskTag= StubUtility.getTodoTaskTag(cProject);
|
||||||
|
if (todoTaskTag == null)
|
||||||
|
return "XXX"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
return todoTaskTag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @see TemplateContextType#TemplateContextType()
|
* @see TemplateContextType#TemplateContextType()
|
||||||
*/
|
*/
|
||||||
|
@ -165,6 +189,7 @@ public abstract class TranslationUnitContextType extends TemplateContextType {
|
||||||
addResolver(new Method());
|
addResolver(new Method());
|
||||||
addResolver(new Project());
|
addResolver(new Project());
|
||||||
addResolver(new Arguments());
|
addResolver(new Arguments());
|
||||||
|
addResolver(new Todo());
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract TranslationUnitContext createContext(IDocument document, int offset, int length, ITranslationUnit translationUnit);
|
public abstract TranslationUnitContext createContext(IDocument document, int offset, int length, ITranslationUnit translationUnit);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2001, 2005 IBM Corporation and others.
|
* Copyright (c) 2001, 2007 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -7,15 +7,20 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Rational Software - initial implementation
|
* Rational Software - initial implementation
|
||||||
|
* Anton Leherbauer (Wind River Systems)
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.internal.ui.codemanipulation;
|
package org.eclipse.cdt.internal.ui.codemanipulation;
|
||||||
|
|
||||||
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.swt.SWT;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
|
import org.eclipse.cdt.core.CCorePreferenceConstants;
|
||||||
import org.eclipse.cdt.core.model.CModelException;
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.IBuffer;
|
import org.eclipse.cdt.core.model.IBuffer;
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
|
|
||||||
public class StubUtility {
|
public class StubUtility {
|
||||||
|
|
||||||
|
@ -65,5 +70,29 @@ public class StubUtility {
|
||||||
return System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
|
return System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the default task tag for the given project.
|
||||||
|
*
|
||||||
|
* @param project
|
||||||
|
* @return the default task tag
|
||||||
|
*/
|
||||||
|
public static String getTodoTaskTag(ICProject project) {
|
||||||
|
String markers= null;
|
||||||
|
if (project == null) {
|
||||||
|
markers= CCorePlugin.getOption(CCorePreferenceConstants.TODO_TASK_TAGS);
|
||||||
|
} else {
|
||||||
|
markers= project.getOption(CCorePreferenceConstants.TODO_TASK_TAGS, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (markers != null && markers.length() > 0) {
|
||||||
|
int idx= markers.indexOf(',');
|
||||||
|
if (idx == -1) {
|
||||||
|
return markers;
|
||||||
|
} else {
|
||||||
|
return markers.substring(0, idx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CCorePreferenceConstants.DEFAULT_TASK_TAG;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue