// 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) // Plain browser env else 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') })