Spaces:
Running
Running
// 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") // CommonJS | |
mod(require("../../lib/codemirror"), require("../haskell/haskell")) | |
else if (typeof define == "function" && define.amd) // AMD | |
define(["../../lib/codemirror", "../haskell/haskell"], mod) | |
else // Plain browser env | |
mod(CodeMirror) | |
})(function (CodeMirror) { | |
"use strict" | |
CodeMirror.defineMode("haskell-literate", function (config, parserConfig) { | |
var baseMode = CodeMirror.getMode(config, (parserConfig && parserConfig.base) || "haskell") | |
return { | |
startState: function () { | |
return { | |
inCode: false, | |
baseState: CodeMirror.startState(baseMode) | |
} | |
}, | |
token: function (stream, state) { | |
if (stream.sol()) { | |
if (state.inCode = stream.eat(">")) | |
return "meta" | |
} | |
if (state.inCode) { | |
return baseMode.token(stream, state.baseState) | |
} else { | |
stream.skipToEnd() | |
return "comment" | |
} | |
}, | |
innerMode: function (state) { | |
return state.inCode ? {state: state.baseState, mode: baseMode} : null | |
} | |
} | |
}, "haskell") | |
CodeMirror.defineMIME("text/x-literate-haskell", "haskell-literate") | |
}); | |