// CodeMirror, copyright (c) by Marijn Haverbeke and others // Distributed under an MIT license: https://codemirror.net/LICENSE ;(function () { CodeMirror.defineMode('markdown_with_stex', function () { var inner = CodeMirror.getMode({}, 'stex') var outer = CodeMirror.getMode({}, 'markdown') var innerOptions = { open: '$', close: '$', mode: inner, delimStyle: 'delim', innerStyle: 'inner', } return CodeMirror.multiplexingMode(outer, innerOptions) }) var mode = CodeMirror.getMode({}, 'markdown_with_stex') function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), 'multiplexing') } MT('stexInsideMarkdown', '[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]') CodeMirror.defineMode('identical_delim_multiplex', function () { return CodeMirror.multiplexingMode(CodeMirror.getMode({ indentUnit: 2 }, 'javascript'), { open: '#', close: '#', mode: CodeMirror.getMode({}, 'markdown'), parseDelimiters: true, innerStyle: 'q', }) }) var mode2 = CodeMirror.getMode({}, 'identical_delim_multiplex') test.mode('identical_delimiters_with_parseDelimiters', mode2, ['[keyword let] [def x] [operator =] [q #foo][q&em *bar*][q #];'], 'multiplexing') })()