Blame | Letzte Änderung | Log anzeigen | RSS feed
// CodeMirror, copyright (c) by Marijn Haverbeke and others// Distributed under an MIT license: http://codemirror.net/LICENSE(function(mod) {if (typeof exports == "object" && typeof module == "object") // CommonJSmod(require("../../lib/codemirror"));else if (typeof define == "function" && define.amd) // AMDdefine(["../../lib/codemirror"], mod);else // Plain browser envmod(CodeMirror);})(function(CodeMirror) {"use strict";CodeMirror.defineMode("spreadsheet", function () {return {startState: function () {return {stringType: null,stack: []};},token: function (stream, state) {if (!stream) return;//check for state changesif (state.stack.length === 0) {//stringsif ((stream.peek() == '"') || (stream.peek() == "'")) {state.stringType = stream.peek();stream.next(); // Skip quotestate.stack.unshift("string");}}//return state//stack hasswitch (state.stack[0]) {case "string":while (state.stack[0] === "string" && !stream.eol()) {if (stream.peek() === state.stringType) {stream.next(); // Skip quotestate.stack.shift(); // Clear flag} else if (stream.peek() === "\\") {stream.next();stream.next();} else {stream.match(/^.[^\\\"\']*/);}}return "string";case "characterClass":while (state.stack[0] === "characterClass" && !stream.eol()) {if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./)))state.stack.shift();}return "operator";}var peek = stream.peek();//no stackswitch (peek) {case "[":stream.next();state.stack.unshift("characterClass");return "bracket";case ":":stream.next();return "operator";case "\\":if (stream.match(/\\[a-z]+/)) return "string-2";else return null;case ".":case ",":case ";":case "*":case "-":case "+":case "^":case "<":case "/":case "=":stream.next();return "atom";case "$":stream.next();return "builtin";}if (stream.match(/\d+/)) {if (stream.match(/^\w+/)) return "error";return "number";} else if (stream.match(/^[a-zA-Z_]\w*/)) {if (stream.match(/(?=[\(.])/, false)) return "keyword";return "variable-2";} else if (["[", "]", "(", ")", "{", "}"].indexOf(peek) != -1) {stream.next();return "bracket";} else if (!stream.eatSpace()) {stream.next();}return null;}};});CodeMirror.defineMIME("text/x-spreadsheet", "spreadsheet");});