-package org.simantics.scl.ui.editor;\r
-\r
-import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy;\r
-import org.eclipse.jface.text.IAutoEditStrategy;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.TextAttribute;\r
-import org.eclipse.jface.text.presentation.IPresentationReconciler;\r
-import org.eclipse.jface.text.presentation.PresentationReconciler;\r
-import org.eclipse.jface.text.rules.DefaultDamagerRepairer;\r
-import org.eclipse.jface.text.rules.IRule;\r
-import org.eclipse.jface.text.rules.ITokenScanner;\r
-import org.eclipse.jface.text.rules.IWhitespaceDetector;\r
-import org.eclipse.jface.text.rules.IWordDetector;\r
-import org.eclipse.jface.text.rules.RuleBasedScanner;\r
-import org.eclipse.jface.text.rules.Token;\r
-import org.eclipse.jface.text.rules.WhitespaceRule;\r
-import org.eclipse.jface.text.rules.WordRule;\r
-import org.eclipse.jface.text.source.ISourceViewer;\r
-import org.eclipse.jface.text.source.SourceViewerConfiguration;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.graphics.RGB;\r
-import org.simantics.scl.ui.info.SCLInfo;\r
-\r
-public class SCLSourceViewerConfiguration extends SourceViewerConfiguration {\r
-\r
- ColorManager colorManager;\r
- \r
- public SCLSourceViewerConfiguration(ColorManager colorManager) {\r
- this.colorManager = colorManager;\r
- }\r
- \r
- public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {\r
- PresentationReconciler reconciler = new PresentationReconciler();\r
- reconciler.setDocumentPartitioning(SCLDocumentSetup.SCL_PARTIONING);\r
- \r
- {\r
- final Token string = new Token(new TextAttribute(colorManager.get(new RGB(42, 0, 255)))); \r
- RuleBasedScanner scanner = new RuleBasedScanner();\r
- scanner.setDefaultReturnToken(string);\r
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner);\r
- reconciler.setRepairer(dr, SCLDocumentSetup.STRING);\r
- reconciler.setDamager(dr, SCLDocumentSetup.STRING);\r
- }\r
- \r
- {\r
- Token comment = new Token(new TextAttribute(colorManager.get(new RGB(63, 127, 95)))); \r
- RuleBasedScanner scanner = new RuleBasedScanner();\r
- scanner.setDefaultReturnToken(comment);\r
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner);\r
- reconciler.setRepairer(dr, SCLDocumentSetup.COMMENT);\r
- reconciler.setDamager(dr, SCLDocumentSetup.COMMENT);\r
- }\r
- \r
- {\r
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getSclTokenScanner()); \r
- reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);\r
- reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);\r
- }\r
- \r
- return reconciler;\r
- }\r
-\r
- private ITokenScanner getSclTokenScanner() {\r
- RuleBasedScanner scanner = new RuleBasedScanner();\r
- \r
- final Token reserved = new Token(new TextAttribute(colorManager.get(new RGB(127, 0, 85)), null, SWT.BOLD));\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);\r
- }\r
- }, new Token(new TextAttribute(colorManager.get(new RGB(0, 0, 0)))));\r
-\r
- for(String word : SCLInfo.RESERVED_WORDS)\r
- reservedWord.addWord(word, reserved);\r
- \r
- IRule[] rules = new IRule[] {\r
- reservedWord,\r
- new WhitespaceRule(new IWhitespaceDetector() {\r
- \r
- @Override\r
- public boolean isWhitespace(char c) {\r
- return Character.isWhitespace(c);\r
- }\r
- }),\r
- };\r
- scanner.setRules(rules);\r
- \r
- return scanner; \r
- }\r
- \r
- @Override\r
- public IAutoEditStrategy[] getAutoEditStrategies(\r
- ISourceViewer sourceViewer, String contentType) {\r
- return new IAutoEditStrategy[] { \r
- new ReplaceTabsBySpaces(),\r
- new DefaultIndentLineAutoEditStrategy()/*,\r
- new MatchingBracketsEditStrategy()*/\r
- };\r
- }\r
-}\r
+package org.simantics.scl.ui.editor;
+
+import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy;
+import org.eclipse.jface.text.IAutoEditStrategy;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.TextAttribute;
+import org.eclipse.jface.text.presentation.IPresentationReconciler;
+import org.eclipse.jface.text.presentation.PresentationReconciler;
+import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
+import org.eclipse.jface.text.rules.IRule;
+import org.eclipse.jface.text.rules.ITokenScanner;
+import org.eclipse.jface.text.rules.IWhitespaceDetector;
+import org.eclipse.jface.text.rules.IWordDetector;
+import org.eclipse.jface.text.rules.RuleBasedScanner;
+import org.eclipse.jface.text.rules.Token;
+import org.eclipse.jface.text.rules.WhitespaceRule;
+import org.eclipse.jface.text.rules.WordRule;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.jface.text.source.SourceViewerConfiguration;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.RGB;
+import org.simantics.scl.ui.info.SCLInfo;
+
+public class SCLSourceViewerConfiguration extends SourceViewerConfiguration {
+
+ ColorManager colorManager;
+
+ public SCLSourceViewerConfiguration(ColorManager colorManager) {
+ this.colorManager = colorManager;
+ }
+
+ public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
+ PresentationReconciler reconciler = new PresentationReconciler();
+ reconciler.setDocumentPartitioning(SCLDocumentSetup.SCL_PARTIONING);
+
+ {
+ final Token string = new Token(new TextAttribute(colorManager.get(new RGB(42, 0, 255))));
+ RuleBasedScanner scanner = new RuleBasedScanner();
+ scanner.setDefaultReturnToken(string);
+ DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner);
+ reconciler.setRepairer(dr, SCLDocumentSetup.STRING);
+ reconciler.setDamager(dr, SCLDocumentSetup.STRING);
+ }
+
+ {
+ Token comment = new Token(new TextAttribute(colorManager.get(new RGB(63, 127, 95))));
+ RuleBasedScanner scanner = new RuleBasedScanner();
+ scanner.setDefaultReturnToken(comment);
+ DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner);
+ reconciler.setRepairer(dr, SCLDocumentSetup.COMMENT);
+ reconciler.setDamager(dr, SCLDocumentSetup.COMMENT);
+ }
+
+ {
+ DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getSclTokenScanner());
+ reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
+ reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
+ }
+
+ return reconciler;
+ }
+
+ private ITokenScanner getSclTokenScanner() {
+ RuleBasedScanner scanner = new RuleBasedScanner();
+
+ final Token reserved = new Token(new TextAttribute(colorManager.get(new RGB(127, 0, 85)), null, SWT.BOLD));
+
+ WordRule reservedWord = new WordRule(new IWordDetector() {
+ @Override
+ public boolean isWordStart(char c) {
+ return Character.isJavaIdentifierStart(c);
+ }
+
+ @Override
+ public boolean isWordPart(char c) {
+ return Character.isJavaIdentifierPart(c);
+ }
+ }, new Token(new TextAttribute(colorManager.get(new RGB(0, 0, 0)))));
+
+ for(String word : SCLInfo.RESERVED_WORDS)
+ reservedWord.addWord(word, reserved);
+
+ IRule[] rules = new IRule[] {
+ reservedWord,
+ new WhitespaceRule(new IWhitespaceDetector() {
+
+ @Override
+ public boolean isWhitespace(char c) {
+ return Character.isWhitespace(c);
+ }
+ }),
+ };
+ scanner.setRules(rules);
+
+ return scanner;
+ }
+
+ @Override
+ public IAutoEditStrategy[] getAutoEditStrategies(
+ ISourceViewer sourceViewer, String contentType) {
+ return new IAutoEditStrategy[] {
+ new ReplaceTabsBySpaces(),
+ new DefaultIndentLineAutoEditStrategy()/*,
+ new MatchingBracketsEditStrategy()*/
+ };
+ }
+}