|
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
- // Distributed under an MIT license: https://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")
- });
|