docs/vendor/klipse_plugin.min.js
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.start = stream.pos;
    }
  }
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.start = stream.pos;
    }
  }
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 . start = stream . pos ; } }
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.
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 .