vendor/assets/javascripts/codemirror/modes/javascript.js in codemirror-rails-3.00 vs vendor/assets/javascripts/codemirror/modes/javascript.js in codemirror-rails-3.02

- old
+ new

@@ -194,16 +194,23 @@ function cont() { pass.apply(null, arguments); return true; } function register(varname) { + function inList(list) { + for (var v = list; v; v = v.next) + if (v.name == varname) return true; + return false; + } var state = cx.state; if (state.context) { cx.marked = "def"; - for (var v = state.localVars; v; v = v.next) - if (v.name == varname) return; + if (inList(state.localVars)) return; state.localVars = {name: varname, next: state.localVars}; + } else { + if (inList(state.globalVars)) return; + state.globalVars = {name: varname, next: state.globalVars}; } } // Combinators @@ -362,10 +369,11 @@ tokenize: jsTokenBase, lastType: null, cc: [], lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), localVars: parserConfig.localVars, + globalVars: parserConfig.globalVars, context: parserConfig.localVars && {vars: parserConfig.localVars}, indented: 0 }; }, @@ -404,8 +412,11 @@ jsonMode: jsonMode }; }); CodeMirror.defineMIME("text/javascript", "javascript"); +CodeMirror.defineMIME("text/ecmascript", "javascript"); +CodeMirror.defineMIME("application/javascript", "javascript"); +CodeMirror.defineMIME("application/ecmascript", "javascript"); CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true }); CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true });