Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 87346 Details for
Bug 174597
Code folding of compound statements
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Final version of the patch - please review and comment
patch.txt (text/plain), 19.65 KB, created by
Elazar Leibovich
on 2008-01-20 01:21:18 EST
(
hide
)
Description:
Final version of the patch - please review and comment
Filename:
MIME Type:
Creator:
Elazar Leibovich
Created:
2008-01-20 01:21:18 EST
Size:
19.65 KB
patch
obsolete
>### 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 06:18:15 -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. > * <p> >@@ -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) >+ * <p> >+ * Value is of type <code>Boolean</code>. >+ * </p> >+ */ >+ 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. > * <p> > * Value is of type <code>Boolean</code>. >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 06:18:13 -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 06:18:10 -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 06:18:13 -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,127 @@ > 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<ModifiableRegionExtra> iral = new Stack<ModifiableRegionExtra>(); >+ 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) { >+ /* 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 +1231,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<Branch> branchStack = new Stack<Branch>(); >+ >+ > > 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 06:18:13 -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 06:18:09 -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 06:18:09 -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 06:18:09 -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=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 174597
:
87339
|
87346
|
87362
|
87468
|
87696