nl_tokens: Project the token type that will exists after the given char is typed and use it to determine whether it would cause the start of a string token .
pl_tokens: function enteringString ( cm , pos , ch ) { var line = cm . getLine ( pos . line ) ; var token = cm . getTokenAt ( pos ) ; if ( / \bstring2?\b / . test ( token . type ) ) return false ; var stream = new CodeMirror . StringStream ( line . slice ( 0 , pos . ch ) + ch + line . slice ( pos . ch ) , 4 ) ; stream . pos = stream . start = token . start ; for ( ; ; ) { var type1 = cm . getMode ( ) . token ( stream , token . state ) ; if ( stream . pos >= pos . ch + 1 ) return / \bstring2?\b / . test ( type1 ) ; stream . <mask> = stream . pos ; } }