@@ -54,12 +54,12 @@ var enableMode = function (CodeMirror) {
5454 "analysis" , "and" , "as" , "assert" , "assign" , "assume" , "at" , "attribute" , "bind" , "binding" , "by" ,
5555 "calc" , "case" , "comment" , "concern" , "connect" , "connection" , "constraint" , "decide" , "def" , "default" ,
5656 "defined" , "dependency" , "derived" , "do" , "doc" , "else" , "end" , "entry" , "enum" , "event" , "exhibit" ,
57- "exit" , "expose" , "feature" , " filter", "first" , "flow" , "for" , "fork" , "frame" , "from" , "hastype" , "if" ,
58- "implies" , " import", "in" , "include" , "individual" , "inout" , "interface" , "istype" , "item" , "join" ,
59- "language" , " loop", "merge" , "message" , "metadata" , "nonunique" , "not" , "objective" , "occurrence" , "of" ,
60- "or" , " ordered", "out" , "package" , "parallel" , "part" , "perform" , "port" , "private" , "protected" ,
61- "public" , " readonly", "redefines" , "ref" , "render" , "rendering" , "rep" , "require" , "requirement" ,
62- "return" , " satisfy", "send" , "snapshot" , "specializes" , "stakeholder" , "state" , "subject" , "subsets" ,
57+ "exit" , "expose" , "filter" , "first" , "flow" , "for" , "fork" , "frame" , "from" , "hastype" , "if" , "implies ",
58+ "import" , "in" , "include" , "individual" , "inout" , "interface" , "istype" , "item" , "join" , "language ",
59+ "loop" , "merge" , "message" , "metadata" , "nonunique" , "not" , "objective" , "occurrence" , "of" , "or ",
60+ "ordered" , "out" , "package" , "parallel" , "part" , "perform" , "port" , "private" , "protected" , "public ",
61+ "readonly" , "redefines" , "ref" , "render" , "rendering" , "rep" , "require" , "requirement" , "return ",
62+ "satisfy" , "send" , "snapshot" , "specializes" , "stakeholder" , "state" , "subject" , "subsets" ,
6363 "succession" , "then" , "timeslice" , "to" , "transition" , "until" , "use" , "variant" , "variation" ,
6464 "verification" , "verify" , "via" , "view" , "viewpoint" , "when" , "while" , "xor"
6565 ] ) ,
@@ -75,21 +75,35 @@ var enableMode = function (CodeMirror) {
7575 modeProps : { fold : [ "brace" ] } ,
7676 hooks : {
7777 "'" : function ( stream ) {
78- var escaped = false , next ;
79- while ( ( next = stream . next ( ) ) != null ) {
80- if ( next == "'" && ! escaped ) {
81- break ;
82- }
83- escaped = ! escaped && next == "\\" ;
78+ let b_escaped = false ;
79+ let s_next ;
80+ while ( s_next = stream . next ( ) ) {
81+ if ( s_next === "'" && ! b_escaped ) break ;
82+ b_escaped = ! b_escaped && s_next === '\\' ;
8483 }
85- return " variable" ;
84+ return ' variable' ;
8685 } ,
8786 "/" : function ( stream ) {
8887 if ( stream . match ( "/*" , false ) ) {
8988 stream . next ( ) ;
9089 }
9190 return false ;
9291 }
92+ "#": function ( stream ) {
93+ do {
94+ if ( stream . match ( "'" , true ) ) {
95+ let b_escaped = false ;
96+ let s_next ;
97+ while ( s_next = stream . next ( ) ) {
98+ if ( s_next === "'" && ! b_escaped ) break ;
99+ b_escaped = ! b_escaped && s_next === '\\' ;
100+ }
101+ } else {
102+ stream . eatWhile ( / \w / ) ;
103+ }
104+ } while ( stream . match ( '::' , true ) )
105+ return 'keyword' ;
106+ } ,
93107 }
94108 } ) ;
95109 } ) ;
0 commit comments