source: java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/syntaxColoring/FramscriptPropertyCodeScanner.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain
File size: 2.5 KB
Line 
1package com.framsticks.framclipse.syntaxColoring;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import org.eclipse.jface.text.TextAttribute;
7import org.eclipse.jface.text.rules.EndOfLineRule;
8import org.eclipse.jface.text.rules.IRule;
9import org.eclipse.jface.text.rules.IToken;
10import org.eclipse.jface.text.rules.RuleBasedScanner;
11import org.eclipse.jface.text.rules.SingleLineRule;
12import org.eclipse.jface.text.rules.Token;
13import org.eclipse.jface.text.rules.WordRule;
14import org.eclipse.swt.SWT;
15
16import com.framsticks.framclipse.Framclipse;
17
18
19public class FramscriptPropertyCodeScanner extends RuleBasedScanner {
20
21        public final static String[] keywords = { "asm", "break", "call", "case", "continue",
22                        "default", "do", "else", "for", "function", "global", "goto", "if", "return", "switch",
23                        "typeof", "var", "while", };
24
25        public final static String[] operators = { "(", ")", "[", "]", "{", "}", "}", "=", "<", ">",
26                        "*", "/", "+", "-", "!", ";", "." };
27
28        public FramscriptPropertyCodeScanner() {
29                ColorManager colorManager = Framclipse.getDefault().getColorManager();
30                IToken keyword = new Token(new TextAttribute(colorManager
31                                .getColor(FramclipseColors.KEYWORD), null, SWT.BOLD));
32                IToken comment = new Token(new TextAttribute(colorManager
33                                .getColor(FramclipseColors.COMMENT)));
34                IToken string = new Token(new TextAttribute(colorManager.getColor(FramclipseColors.STRING)));
35                IToken number = new Token(new TextAttribute(colorManager.getColor(FramclipseColors.NUMBER)));
36                IToken code = new Token(new TextAttribute(colorManager.getColor(FramclipseColors.CODE)));
37                IToken operator = new Token(new TextAttribute(colorManager
38                                .getColor(FramclipseColors.OPERATOR)));
39
40                List<IRule> rules = new ArrayList<IRule>();
41                rules.add(new EndOfLineRule("//", comment));
42                rules.add(new SingleLineRule("\"", "\"", string, '\\'));
43                rules.add(new SingleLineRule("\'", "\'", string, '\\'));
44
45                WordRule numberRule = new WordRule(new FramscriptNumberDetector(), number);
46                rules.add(numberRule);
47
48                WordRule operatorRule = new WordRule(new FramscriptOperatorDetector(), code);
49                for (int i = 0; i < operators.length; i++) {
50                        operatorRule.addWord(operators[i], operator);
51                }
52                rules.add(operatorRule);
53
54                WordRule keywordRule = new WordRule(new FramscriptWordDetector(), code);
55                for (int i = 0; i < keywords.length; i++) {
56                        keywordRule.addWord(keywords[i], keyword);
57                }
58                rules.add(keywordRule);
59
60                setDefaultReturnToken(code);
61
62                IRule[] result = new IRule[rules.size()];
63                result = rules.toArray(result);
64                setRules(result);
65        }
66}
Note: See TracBrowser for help on using the repository browser.