### Eclipse Workspace Patch 1.0
#P org.eclipse.cdt.ui
Index: src/org/eclipse/cdt/ui/PreferenceConstants.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java,v
retrieving revision 1.42
diff -u -r1.42 PreferenceConstants.java
--- src/org/eclipse/cdt/ui/PreferenceConstants.java 16 Jan 2008 09:50:35 -0000 1.42
+++ src/org/eclipse/cdt/ui/PreferenceConstants.java 20 Jan 2008 21:02:32 -0000
@@ -792,7 +792,7 @@
*
*/
public static final String EDITOR_FOLDING_ENABLED= "editor_folding_enabled"; //$NON-NLS-1$
-
+
/**
* A named preference that stores the configured folding provider.
*
@@ -813,6 +813,14 @@
public static final String EDITOR_FOLDING_STRUCTURES= "editor_folding_default_structures"; //$NON-NLS-1$
/**
+ * A named preference that stores the value for statements (if/else while/do, for, switch statements)
+ *
+ * Value is of type Boolean
.
+ *
+ */
+ public static final String EDITOR_FOLDING_STATEMENTS = "editor_folding_statements"; //$NON-NLS-1$
+
+ /**
* A named preference that stores the value for functions folding for the default folding provider.
*
* Value is of type Boolean
.
Index: src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.properties
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.properties,v
retrieving revision 1.7
diff -u -r1.7 FoldingMessages.properties
--- src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.properties 28 May 2007 20:25:51 -0000 1.7
+++ src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.properties 20 Jan 2008 21:02:29 -0000
@@ -20,5 +20,6 @@
DefaultCFoldingPreferenceBlock_headers= &Header Comments
DefaultCFoldingPreferenceBlock_inactive_code= &Inactive Preprocessor Branches
DefaultCFoldingPreferenceBlock_preprocessor_enabled= Enable folding of preprocessor branches (#if/#endif)
+DefaultCFoldingPreferenceBlock_statements_enabled= Enable folding of control flow statements (if, else, do/while, for, switch)
EmptyCFoldingPreferenceBlock_emptyCaption=
Index: src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingPreferenceBlock.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingPreferenceBlock.java,v
retrieving revision 1.7
diff -u -r1.7 DefaultCFoldingPreferenceBlock.java
--- src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingPreferenceBlock.java 3 Dec 2007 14:04:09 -0000 1.7
+++ src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingPreferenceBlock.java 20 Jan 2008 21:02:26 -0000
@@ -74,6 +74,7 @@
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_HEADERS));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED));
+ overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_STATEMENTS));
return (OverlayKey[]) overlayKeys.toArray(new OverlayKey[overlayKeys.size()]);
}
@@ -92,6 +93,7 @@
inner.setLayout(layout);
addCheckBox(inner, FoldingMessages.DefaultCFoldingPreferenceBlock_preprocessor_enabled, PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED, 1);
+ addCheckBox(inner, FoldingMessages.DefaultCFoldingPreferenceBlock_statements_enabled, PreferenceConstants.EDITOR_FOLDING_STATEMENTS, 1);
ControlFactory.createEmptySpace(inner);
Composite group= ControlFactory.createGroup(inner, FoldingMessages.DefaultCFoldingPreferenceBlock_title, 1);
@@ -101,7 +103,7 @@
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_methods, PreferenceConstants.EDITOR_FOLDING_METHODS, 0);
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_structures, PreferenceConstants.EDITOR_FOLDING_STRUCTURES, 0);
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_comments, PreferenceConstants.EDITOR_FOLDING_COMMENTS, 0);
- addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_headers, PreferenceConstants.EDITOR_FOLDING_HEADERS, 0);
+ addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_headers, PreferenceConstants.EDITOR_FOLDING_HEADERS, 0);
fInactiveCodeFoldingCheckBox= addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_inactive_code, PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE, 0);
return inner;
@@ -137,6 +139,9 @@
if (PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED.equals(key)) {
fInactiveCodeFoldingCheckBox.setEnabled(fOverlayStore.getBoolean(key));
}
+ if (PreferenceConstants.EDITOR_FOLDING_STATEMENTS.equals(key)) {
+ fInactiveCodeFoldingCheckBox.setEnabled(fOverlayStore.getBoolean(key));
+ }
}
/*
Index: src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java,v
retrieving revision 1.24
diff -u -r1.24 DefaultCFoldingStructureProvider.java
--- src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java 18 Jan 2008 08:38:19 -0000 1.24
+++ src/org/eclipse/cdt/internal/ui/text/folding/DefaultCFoldingStructureProvider.java 20 Jan 2008 21:02:29 -0000
@@ -50,6 +50,21 @@
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.dom.ast.ASTVisitor;
+import org.eclipse.cdt.core.dom.ast.IASTBreakStatement;
+import org.eclipse.cdt.core.dom.ast.IASTCaseStatement;
+import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
+import org.eclipse.cdt.core.dom.ast.IASTDoStatement;
+import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
+import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
+import org.eclipse.cdt.core.dom.ast.IASTForStatement;
+import org.eclipse.cdt.core.dom.ast.IASTWhileStatement;
+import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
+import org.eclipse.cdt.core.dom.ast.IASTStatement;
+import org.eclipse.cdt.core.dom.ast.IASTSwitchStatement;
+
import org.eclipse.cdt.core.dom.ast.IASTNodeLocation;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorElifStatement;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorElseStatement;
@@ -647,6 +662,7 @@
private int fMinCommentLines= 1;
private boolean fPreprocessorBranchFoldingEnabled= true;
+ private boolean fStatementsFoldingEnabled = false;
private boolean fCommentFoldingEnabled= true;
private ICReconcilingListener fReconilingListener;
@@ -810,6 +826,7 @@
fCollapseComments= store.getBoolean(PreferenceConstants.EDITOR_FOLDING_COMMENTS);
fCollapseInactiveCode= store.getBoolean(PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE);
fPreprocessorBranchFoldingEnabled= store.getBoolean(PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED);
+ fStatementsFoldingEnabled = store.getBoolean(PreferenceConstants.EDITOR_FOLDING_STATEMENTS);
fCommentFoldingEnabled= true;
}
@@ -1041,7 +1058,7 @@
// ignore
}
}
- if (fPreprocessorBranchFoldingEnabled) {
+ if (fPreprocessorBranchFoldingEnabled || fStatementsFoldingEnabled) {
IASTTranslationUnit ast= ctx.getAST();
if (ast == null) {
final ASTProvider astProvider= CUIPlugin.getDefault().getASTProvider();
@@ -1081,8 +1098,154 @@
return false;
}
+ class ModifiableRegionExtra extends ModifiableRegion {
+ /* A modifiable region with extra information about the
+ * region it holds. It tells us whether or not to include
+ * the last line of the region */
+ public boolean inclusive;
+ }
+
/**
- * Compute folding structure of the preprocessor branches for the given AST.
+ * Computes folding structure for preprocessor branches for the given AST.
+ *
+ * @param ast
+ * @param ctx
+ */
+ private void computeStatementFoldingStructure(IASTTranslationUnit ast, FoldingStructureComputationContext ctx) {
+ final Stack iral = new Stack();
+ ast.accept(new ASTVisitor() {
+ {
+ shouldVisitStatements = true;
+ }
+
+ public int visit(IASTStatement statement) {
+ // if it's not part of the displayed - file, we don't need it
+ if (!statement.isPartOfTranslationUnitFile())
+ return PROCESS_SKIP;//we neither need its descendants
+ try {
+ ModifiableRegionExtra mr;
+ IASTFileLocation fl;
+ if (statement instanceof IASTIfStatement) {
+ IASTIfStatement ifstmt = (IASTIfStatement) statement;
+ IASTStatement tmp;
+ mr = new ModifiableRegionExtra();
+ tmp = ifstmt.getThenClause();
+ if (tmp==null) return PROCESS_CONTINUE;
+ fl = tmp.getFileLocation();
+ mr.setLength(fl.getNodeLength());
+ mr.setOffset(fl.getNodeOffset());
+ mr.inclusive = false;
+ tmp = ifstmt.getElseClause();
+ if (tmp==null) {
+ mr.inclusive = true;
+ iral.push(mr);
+ return PROCESS_CONTINUE;
+ }
+ iral.push(mr);
+ mr = new ModifiableRegionExtra();
+ fl = tmp.getFileLocation();
+ mr.setLength(fl.getNodeLength());
+ mr.setOffset(fl.getNodeOffset());
+ mr.inclusive = true;
+ iral.push(mr);
+ }
+ mr = new ModifiableRegionExtra();
+ mr.inclusive = true;
+ if (statement instanceof IASTDoStatement)
+ mr.inclusive = false;
+ if (statement instanceof IASTSwitchStatement) {
+ IASTStatement switchstmt = ((IASTSwitchStatement)statement).getBody();
+ if (switchstmt instanceof IASTCompoundStatement) {
+ IASTStatement[] stmts = ((IASTCompoundStatement)switchstmt).getStatements();
+ boolean pushedMR = false;
+ for (int i = 0; i < stmts.length; i++) {
+ IASTStatement tmpstmt = stmts[i];
+ ModifiableRegionExtra tmpmr;
+ if (!(tmpstmt instanceof IASTCaseStatement)) {
+ if (!pushedMR) return PROCESS_SKIP;
+ IASTFileLocation tmpfl = tmpstmt.getFileLocation();
+ tmpmr = iral.peek();
+ tmpmr.setLength(tmpfl.getNodeLength()+tmpfl.getNodeOffset()-tmpmr.getOffset());
+ System.out.printf("%d is good\n", tmpmr.getLength()+tmpstmt.getFileLocation().getNodeLength()); //$NON-NLS-1$
+ if (tmpstmt instanceof IASTBreakStatement) pushedMR = false;
+ continue;
+ }
+ IASTCaseStatement casestmt = (IASTCaseStatement) tmpstmt;
+ tmpmr = new ModifiableRegionExtra();
+ tmpmr.inclusive = true;
+ IASTFileLocation tmpfl = casestmt.getExpression().getFileLocation();
+ tmpmr.setOffset(tmpfl.getNodeOffset());
+ tmpmr.setLength(tmpfl.getNodeLength());
+ iral.push(tmpmr);
+ pushedMR = true;
+ }
+ }
+ /* The following code should visit any case statements within the
+ * switch statement, and add folding to each case statement.
+ * For some unknown reason, it fails to even visit a single child statement
+ * of the switch statement, the visit function in the anonymous class is never
+ * visited.
+ * I leave the code commented in case anyone wish to fix it.
+ statement.accept(new ASTVisitor() {
+ {
+ shouldVisitStatements = true;
+ }
+ boolean pushedMR = false;
+ //did we pushed a ModifiableRegion to iral stack? If we did we might need to update it
+ public int visit(IASTStatement stmt) {
+ ModifiableRegionExtra tmpmr;
+ if (!(stmt instanceof IASTCaseStatement)) {
+ if (!pushedMR) return PROCESS_SKIP;
+ tmpmr = iral.peek();
+ tmpmr.setLength(tmpmr.getLength()+stmt.getFileLocation().getNodeLength());
+ System.out.printf("%d is good\n", tmpmr.getLength()+stmt.getFileLocation().getNodeLength()); //$NON-NLS-1$
+ if (stmt instanceof IASTBreakStatement) pushedMR = false;
+ return PROCESS_SKIP;
+ }
+ IASTCaseStatement casestmt = (IASTCaseStatement) stmt;
+ tmpmr = new ModifiableRegionExtra();
+ IASTFileLocation tmpfl = casestmt.getExpression().getFileLocation();
+ tmpmr.setOffset(tmpfl.getNodeOffset());
+ tmpmr.setLength(tmpfl.getNodeLength());
+ iral.push(tmpmr);
+ pushedMR = true;
+
+ return PROCESS_SKIP;
+ }
+ });*/
+
+ }
+ if (statement instanceof IASTForStatement ||
+ statement instanceof IASTWhileStatement ||
+ statement instanceof IASTDoStatement ||
+ statement instanceof IASTSwitchStatement) {
+ fl = statement.getFileLocation();
+ mr.setLength(fl.getNodeLength());
+ mr.setOffset(fl.getNodeOffset());
+ iral.push(mr);
+ }
+ return PROCESS_CONTINUE;
+ } catch (Throwable e) {
+ CCorePlugin.log(e);
+ return PROCESS_CONTINUE;
+ }
+ }
+ });
+ while (!iral.empty()) {
+ ModifiableRegionExtra mr = iral.pop();
+ IRegion aligned = alignRegion(mr, ctx,mr.inclusive);
+ if (aligned != null) {
+ Position alignedPos= new Position(aligned.getOffset(), aligned.getLength());
+ ctx.addProjectionRange(new CProjectionAnnotation(false, computeKey(mr, ctx), false), alignedPos);
+ }
+ }
+ }
+
+ /**
+ * Compute folding structure of things related to the AST tree.
+ * Currently it computes the folding structure for:
+ * preprocessor branches for the given AST.
+ * Also, it computes statements folding (if/else do/while for and switch)
*
* @param ast
* @param ctx
@@ -1095,8 +1258,25 @@
if (fileName == null) {
return;
}
+
+ if (fStatementsFoldingEnabled) computeStatementFoldingStructure(ast, ctx);
+
+ if (fPreprocessorBranchFoldingEnabled) computePreprocessorFoldingStructure(ast, ctx, fileName);
+ }
+
+ /**
+ * Computes folding structure for preprocessor branches for the given AST.
+ *
+ * @param ast
+ * @param ctx
+ * @param fileName
+ */
+ private void computePreprocessorFoldingStructure(IASTTranslationUnit ast,
+ FoldingStructureComputationContext ctx, String fileName) {
List branches= new ArrayList();
- Stack branchStack = new Stack();
+ Stack branchStack = new Stack();
+
+
IASTPreprocessorStatement[] preprocStmts = ast.getAllPreprocessorStatements();
Index: src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.java,v
retrieving revision 1.5
diff -u -r1.5 FoldingMessages.java
--- src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.java 13 Nov 2006 09:44:13 -0000 1.5
+++ src/org/eclipse/cdt/internal/ui/text/folding/FoldingMessages.java 20 Jan 2008 21:02:29 -0000
@@ -30,6 +30,7 @@
public static String DefaultCFoldingPreferenceBlock_inactive_code;
public static String DefaultCFoldingPreferenceBlock_preprocessor_enabled;
public static String EmptyCFoldingPreferenceBlock_emptyCaption;
+ public static String DefaultCFoldingPreferenceBlock_statements_enabled;
static {
NLS.initializeMessages(BUNDLE_NAME, FoldingMessages.class);
Index: .settings/org.eclipse.jdt.core.prefs
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/.settings/org.eclipse.jdt.core.prefs,v
retrieving revision 1.8
diff -u -r1.8 org.eclipse.jdt.core.prefs
--- .settings/org.eclipse.jdt.core.prefs 28 Nov 2007 10:23:51 -0000 1.8
+++ .settings/org.eclipse.jdt.core.prefs 20 Jan 2008 21:02:26 -0000
@@ -1,9 +1,9 @@
-#Wed Nov 28 11:20:40 CET 2007
+#Fri Jan 11 13:51:05 IST 2008
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -16,7 +16,7 @@
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=error
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
@@ -38,6 +38,7 @@
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
@@ -77,7 +78,7 @@
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.4
+org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -325,9 +326,12 @@
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
Index: .settings/org.eclipse.pde.prefs
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/.settings/org.eclipse.pde.prefs,v
retrieving revision 1.1
diff -u -r1.1 org.eclipse.pde.prefs
--- .settings/org.eclipse.pde.prefs 26 Sep 2006 10:01:26 -0000 1.1
+++ .settings/org.eclipse.pde.prefs 20 Jan 2008 21:02:26 -0000
@@ -1,7 +1,9 @@
-#Tue Sep 26 11:18:15 CEST 2006
+#Fri Jan 11 13:31:33 IST 2008
compilers.incompatible-environment=1
compilers.p.build=1
compilers.p.deprecated=1
+compilers.p.missing-bundle-classpath-entries=1
+compilers.p.missing-packages=2
compilers.p.no-required-att=0
compilers.p.not-externalized-att=1
compilers.p.unknown-attribute=1
Index: .settings/org.eclipse.jdt.ui.prefs
===================================================================
RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.ui/.settings/org.eclipse.jdt.ui.prefs,v
retrieving revision 1.4
diff -u -r1.4 org.eclipse.jdt.ui.prefs
--- .settings/org.eclipse.jdt.ui.prefs 28 Nov 2007 10:23:51 -0000 1.4
+++ .settings/org.eclipse.jdt.ui.prefs 20 Jan 2008 21:02:26 -0000
@@ -1,4 +1,4 @@
-#Wed Nov 28 11:20:40 CET 2007
+#Fri Jan 11 13:51:05 IST 2008
eclipse.preferences.version=1
formatter_profile=_Eclipse [built-in] - cdt
formatter_settings_version=11
@@ -6,3 +6,4 @@
org.eclipse.jdt.ui.importorder=java;javax;org;com;org.eclipse.cdt;org.eclipse.cdt.internal;org.eclipse.cdt.internal.ui;
org.eclipse.jdt.ui.ondemandthreshold=99
org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=