- PresentationReconciler reconciler = new PresentationReconciler();\r
- \r
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getSclTokenScanner());\r
- \r
- reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);\r
- reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);\r
- \r
- return reconciler;\r
- }\r
- \r
- private static final FontDescriptor FONT_NORMAL = FontDescriptor.createFrom("Consolas", 10, SWT.NORMAL);\r
- private static final FontDescriptor FONT_BOLD = FontDescriptor.createFrom("Consolas", 10, SWT.BOLD);\r
- \r
- ITokenScanner getSclTokenScanner() {\r
- RuleBasedScanner scanner = new RuleBasedScanner();\r
- \r
- Font font = resourceManager.createFont(FONT_NORMAL);\r
- Font boldFont = resourceManager.createFont(FONT_BOLD);\r
- \r
- Token defaultToken = new Token(\r
- new TextAttribute(\r
- resourceManager.createColor(new RGB(0, 0, 0)),\r
- null,\r
- 0,\r
- font\r
- ));\r
- Token string = new Token(new TextAttribute(\r
- resourceManager.createColor(new RGB(42, 0, 255)),\r
- null,\r
- 0,\r
- font\r
- ));\r
- Token reserved = new Token(\r
- new TextAttribute(\r
- resourceManager.createColor(new RGB(127, 0, 85)),\r
- null,\r
- SWT.BOLD,\r
- boldFont\r
- ));\r
- Token comment = new Token(new TextAttribute(\r
- resourceManager.createColor(new RGB(63, 127, 95)),\r
- null,\r
- 0,\r
- font\r
- ));\r
-\r
- WordRule reservedWord = new WordRule(new IWordDetector() { \r
- @Override\r
- public boolean isWordStart(char c) {\r
- return Character.isJavaIdentifierStart(c);\r
- }\r
- \r
- @Override\r
- public boolean isWordPart(char c) {\r
- return Character.isJavaIdentifierPart(c) || c=='.';\r
- }\r
- });\r
-\r
- for(String word : SCLInfo.RESERVED_WORDS)\r
- reservedWord.addWord(word, reserved);\r
- \r
- IRule[] rules = new IRule[] {\r
- //new MultiLineRule("\"\"\"", "\"\"\"", string),\r
- new PatternRule("\"", "\"", string, '\\', true),\r
- new MultiLineRule("/*", "*/", comment),\r
- new EndOfLineRule("//", comment),\r
- reservedWord\r
- };\r
- scanner.setRules(rules);\r
- scanner.setDefaultReturnToken(defaultToken);\r
- \r
- return scanner;\r