mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 09:25:31 +02:00
2.0 cleanups
This commit is contained in:
parent
31e3dc5a93
commit
b9ffb7a6dc
2 changed files with 51 additions and 23 deletions
|
@ -8,20 +8,22 @@ package org.eclipse.cdt.internal.ui.text;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
import org.eclipse.jface.text.rules.BufferedRuleBasedScanner;
|
||||
import org.eclipse.jface.text.rules.EndOfLineRule;
|
||||
import org.eclipse.jface.text.rules.IRule;
|
||||
import org.eclipse.jface.text.rules.ICharacterScanner;
|
||||
import org.eclipse.jface.text.rules.IPredicateRule;
|
||||
import org.eclipse.jface.text.rules.IToken;
|
||||
import org.eclipse.jface.text.rules.IWordDetector;
|
||||
import org.eclipse.jface.text.rules.MultiLineRule;
|
||||
import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
|
||||
import org.eclipse.jface.text.rules.SingleLineRule;
|
||||
import org.eclipse.jface.text.rules.Token;
|
||||
import org.eclipse.jface.text.rules.WordRule;
|
||||
|
||||
|
||||
/**
|
||||
* This scanner recognizes comments
|
||||
*/
|
||||
public class CPartitionScanner extends BufferedRuleBasedScanner {
|
||||
public class CPartitionScanner extends RuleBasedPartitionScanner {
|
||||
|
||||
|
||||
private final static String SKIP= "__skip";
|
||||
|
@ -37,16 +39,14 @@ public class CPartitionScanner extends BufferedRuleBasedScanner {
|
|||
*/
|
||||
static class EmptyCommentDetector implements IWordDetector {
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* @see IWordDetector#isWordStart
|
||||
*/
|
||||
public boolean isWordStart(char c) {
|
||||
return (c == '/');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* @see IWordDetector#isWordPart
|
||||
*/
|
||||
public boolean isWordPart(char c) {
|
||||
|
@ -54,13 +54,42 @@ public class CPartitionScanner extends BufferedRuleBasedScanner {
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Word rule for empty comments.
|
||||
*/
|
||||
static class EmptyCommentRule extends WordRule implements IPredicateRule {
|
||||
|
||||
private IToken fSuccessToken;
|
||||
/**
|
||||
* Constructor for EmptyCommentRule.
|
||||
* @param defaultToken
|
||||
*/
|
||||
public EmptyCommentRule(IToken successToken) {
|
||||
super(new EmptyCommentDetector());
|
||||
fSuccessToken= successToken;
|
||||
addWord("/**/", fSuccessToken); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/*
|
||||
* @see IPredicateRule#evaluate(ICharacterScanner, boolean)
|
||||
*/
|
||||
public IToken evaluate(ICharacterScanner scanner, boolean resume) {
|
||||
return evaluate(scanner);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see IPredicateRule#getSuccessToken()
|
||||
*/
|
||||
public IToken getSuccessToken() {
|
||||
return fSuccessToken;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates the partitioner and sets up the appropriate rules.
|
||||
*/
|
||||
public CPartitionScanner() {
|
||||
// Set buffer size to 1k
|
||||
super(1000);
|
||||
super();
|
||||
|
||||
IToken comment= new Token(C_MULTILINE_COMMENT);
|
||||
IToken single_comment= new Token(C_SINGLE_LINE_COMMENT);
|
||||
|
@ -84,19 +113,17 @@ public class CPartitionScanner extends BufferedRuleBasedScanner {
|
|||
rules.add(new SingleLineRule("\"", "\"", string, '\\'));
|
||||
rules.add(new SingleLineRule("'", "'", skip, '\\'));
|
||||
|
||||
|
||||
// Add special case word rule.
|
||||
//WordRule wordRule= new WordRule(new EmptyCommentDetector());
|
||||
//wordRule.addWord("/**/", comment);
|
||||
//rules.add(wordRule);
|
||||
EmptyCommentRule wordRule= new EmptyCommentRule(comment);
|
||||
rules.add(wordRule);
|
||||
|
||||
|
||||
// Add rules for multi-line comments.
|
||||
//rules.add(new MultiLineRule("/*", "*/", comment));
|
||||
rules.add(new CMultilineCommentScanner(comment, (char)0, false));
|
||||
rules.add(new MultiLineRule("/*", "*/", comment));
|
||||
//rules.add(new CMultilineCommentScanner(comment, (char)0, false));
|
||||
|
||||
IRule[] result= new IRule[rules.size()];
|
||||
IPredicateRule[] result= new IPredicateRule[rules.size()];
|
||||
rules.toArray(result);
|
||||
setRules(result);
|
||||
setPredicateRules(result);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,9 @@ import org.eclipse.jface.text.presentation.IPresentationReconciler;
|
|||
import org.eclipse.jface.text.presentation.PresentationReconciler;
|
||||
import org.eclipse.jface.text.reconciler.IReconciler;
|
||||
import org.eclipse.jface.text.reconciler.Reconciler;
|
||||
import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
|
||||
import org.eclipse.jface.text.rules.DefaultPartitioner;
|
||||
import org.eclipse.jface.text.rules.RuleBasedDamagerRepairer;
|
||||
import org.eclipse.jface.text.rules.RuleBasedScanner;
|
||||
import org.eclipse.jface.text.source.IAnnotationHover;
|
||||
import org.eclipse.jface.text.source.ISourceViewer;
|
||||
|
@ -37,7 +39,6 @@ import org.eclipse.ui.texteditor.ITextEditor;
|
|||
import org.eclipse.cdt.internal.ui.CPlugin;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditorTextHoverDispatcher;
|
||||
import org.eclipse.cdt.internal.ui.text.eclipse2.CRuleBasedDamagerRepairer;
|
||||
import org.eclipse.cdt.ui.ICDTConstants;
|
||||
|
||||
|
||||
|
@ -134,22 +135,22 @@ public class CSourceViewerConfiguration extends SourceViewerConfiguration {
|
|||
scanner= fTextTools.getCCodeScanner();
|
||||
}
|
||||
|
||||
CRuleBasedDamagerRepairer dr= new CRuleBasedDamagerRepairer(scanner);
|
||||
DefaultDamagerRepairer dr= new DefaultDamagerRepairer(scanner);
|
||||
|
||||
reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
|
||||
reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
|
||||
|
||||
//TextAttribute attr = new TextAttribute(manager.getColor(ICColorConstants.C_DEFAULT));
|
||||
|
||||
dr= new CRuleBasedDamagerRepairer(getSinglelineCommentScanner());
|
||||
dr= new DefaultDamagerRepairer(getSinglelineCommentScanner());
|
||||
reconciler.setDamager(dr, CPartitionScanner.C_SINGLE_LINE_COMMENT);
|
||||
reconciler.setRepairer(dr, CPartitionScanner.C_SINGLE_LINE_COMMENT);
|
||||
|
||||
dr= new CRuleBasedDamagerRepairer(getStringScanner());
|
||||
dr= new DefaultDamagerRepairer(getStringScanner());
|
||||
reconciler.setDamager(dr, CPartitionScanner.C_STRING);
|
||||
reconciler.setRepairer(dr, CPartitionScanner.C_STRING);
|
||||
|
||||
dr= new CRuleBasedDamagerRepairer(getMultilineCommentScanner());
|
||||
dr= new DefaultDamagerRepairer(getMultilineCommentScanner());
|
||||
reconciler.setDamager(dr, CPartitionScanner.C_MULTILINE_COMMENT);
|
||||
reconciler.setRepairer(dr, CPartitionScanner.C_MULTILINE_COMMENT);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue