]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLPartitionScanner.java
Merged changes from feature/scl to master.
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / editor2 / SCLPartitionScanner.java
diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLPartitionScanner.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLPartitionScanner.java
new file mode 100644 (file)
index 0000000..98e9a46
--- /dev/null
@@ -0,0 +1,33 @@
+package org.simantics.scl.ui.editor2;\r
+\r
+import org.eclipse.jface.text.rules.EndOfLineRule;\r
+import org.eclipse.jface.text.rules.IPredicateRule;\r
+import org.eclipse.jface.text.rules.IToken;\r
+import org.eclipse.jface.text.rules.MultiLineRule;\r
+import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;\r
+import org.eclipse.jface.text.rules.SingleLineRule;\r
+import org.eclipse.jface.text.rules.Token;\r
+\r
+public class SCLPartitionScanner extends RuleBasedPartitionScanner {\r
+    public static final String SCL_COMMENT = "COMMENT";\r
+    public static final String SCL_STRING = "STRING";\r
+    \r
+    public static final IToken COMMENT_TOKEN = new Token(SCL_COMMENT);\r
+    public static final IToken STRING_TOKEN = new Token(SCL_STRING);\r
+    \r
+    public static final String[] PARTITION_TYPES = new String[] {\r
+            SCL_COMMENT,\r
+            SCL_STRING\r
+    };\r
+    \r
+    public SCLPartitionScanner() {\r
+        super();\r
+\r
+        setPredicateRules(new IPredicateRule[] {\r
+                new EndOfLineRule("//", COMMENT_TOKEN),\r
+                new MultiLineRule("\"\"\"", "\"\"\"", STRING_TOKEN, (char) 0, true),\r
+                new SingleLineRule("\"", "\"", STRING_TOKEN, '\\'),\r
+                new MultiLineRule("/*", "*/", COMMENT_TOKEN, (char) 0, true),\r
+        });\r
+    }\r
+}\r