| 
									
										
										
										
											2018-01-21 10:33:32 -05:00
										 |  |  | // CodeMirror, copyright (c) by Marijn Haverbeke and others
 | 
					
						
							| 
									
										
										
										
											2022-10-15 12:22:09 +02:00
										 |  |  | // Distributed under an MIT license: https://codemirror.net/5/LICENSE
 | 
					
						
							| 
									
										
										
										
											2018-01-21 10:33:32 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | (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") | 
					
						
							|  |  |  | }); |