30
30
public class SuppressionsElementScanner extends BufferedRuleBasedScanner {
32
public static final String MEMCHECK = "Memcheck"; //$NON-NLS-1$
33
public static final String[] MEMCHECK_SUPP_TYPES = new String[] {
34
"Value0", "Value1", "Value2", "Value4", "Value8", "Value16", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
36
"Addr1", "Addr2", "Addr4", "Addr8", "Addr16", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
38
"Param", //$NON-NLS-1$
40
"Overlap", //$NON-NLS-1$
43
public static final String[] CONTEXTS = new String[] { "obj", "fun" //$NON-NLS-1$ //$NON-NLS-2$
46
public SuppressionsElementScanner(ColorManager colorManager) {
47
String[] tools = { MEMCHECK };
48
Map<String, List<String>> kinds = new HashMap<String, List<String>>();
49
kinds.put(MEMCHECK, Arrays.asList(MEMCHECK_SUPP_TYPES));
51
IToken defaultToken = new Token(new TextAttribute(colorManager
52
.getColor(ISuppressionsColorConstants.DEFAULT)));
53
IToken toolToken = new Token(new TextAttribute(colorManager
54
.getColor(ISuppressionsColorConstants.TOOL), null, SWT.BOLD));
55
IToken suppKindToken = new Token(new TextAttribute(colorManager
56
.getColor(ISuppressionsColorConstants.SUPP_TYPE)));
57
IToken contextToken = new Token(new TextAttribute(colorManager
58
.getColor(ISuppressionsColorConstants.CONTEXT), null, SWT.BOLD));
59
IToken commentToken = new Token(new TextAttribute(colorManager
60
.getColor(ISuppressionsColorConstants.COMMENT)));
63
// WordRule keywordsRule = new WordRule(new IWordDetector() {
65
// public boolean isWordPart(char c) {
66
// return Character.isJavaIdentifierPart(c);
69
// public boolean isWordStart(char c) {
70
// return Character.isJavaIdentifierStart(c);
75
// for (String tool : TOOLS) {
76
// keywordsRule.addWord(tool, toolToken);
78
// for (String keyword : SUPP_TYPES) {
79
// keywordsRule.addWord(keyword, suppTypeToken);
81
// for (String context : CONTEXTS) {
82
// keywordsRule.addWord(context, contextToken);
85
setDefaultReturnToken(defaultToken);
86
setRules(new IRule[] {
87
new EndOfLineRule("#", commentToken), //$NON-NLS-1$
88
new SuppressionToolRule(tools, toolToken),
89
new SuppressionKindRule(kinds, suppKindToken),
90
new SuppressionToolRule(CONTEXTS, contextToken),
92
new WhitespaceRule(new IWhitespaceDetector() {
93
public boolean isWhitespace(char c) {
94
return Character.isWhitespace(c);
32
public static final String MEMCHECK = "Memcheck"; //$NON-NLS-1$
33
public static final String[] MEMCHECK_SUPP_TYPES = new String[] {
34
"Value0", "Value1", "Value2", "Value4", "Value8", "Value16", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
36
"Addr1", "Addr2", "Addr4", "Addr8", "Addr16", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
38
"Param", //$NON-NLS-1$
40
"Overlap", //$NON-NLS-1$
43
public static final String[] CONTEXTS = new String[] { "obj", "fun" //$NON-NLS-1$ //$NON-NLS-2$
46
public SuppressionsElementScanner(ColorManager colorManager) {
47
String[] tools = { MEMCHECK };
48
Map<String, List<String>> kinds = new HashMap<>();
49
kinds.put(MEMCHECK, Arrays.asList(MEMCHECK_SUPP_TYPES));
51
IToken defaultToken = new Token(new TextAttribute(colorManager
52
.getColor(ISuppressionsColorConstants.DEFAULT)));
53
IToken toolToken = new Token(new TextAttribute(colorManager
54
.getColor(ISuppressionsColorConstants.TOOL), null, SWT.BOLD));
55
IToken suppKindToken = new Token(new TextAttribute(colorManager
56
.getColor(ISuppressionsColorConstants.SUPP_TYPE)));
57
IToken contextToken = new Token(new TextAttribute(colorManager
58
.getColor(ISuppressionsColorConstants.CONTEXT), null, SWT.BOLD));
59
IToken commentToken = new Token(new TextAttribute(colorManager
60
.getColor(ISuppressionsColorConstants.COMMENT)));
62
setDefaultReturnToken(defaultToken);
63
setRules(new IRule[] {
64
new EndOfLineRule("#", commentToken), //$NON-NLS-1$
65
new SuppressionToolRule(tools, toolToken),
66
new SuppressionKindRule(kinds, suppKindToken),
67
new SuppressionToolRule(CONTEXTS, contextToken),
68
new WhitespaceRule(new IWhitespaceDetector() {
70
public boolean isWhitespace(char c) {
71
return Character.isWhitespace(c);