--- /dev/null
+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