multiplex_test.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // CodeMirror, copyright (c) by Marijn Haverbeke and others
  2. // Distributed under an MIT license: https://codemirror.net/LICENSE
  3. ;(function () {
  4. CodeMirror.defineMode('markdown_with_stex', function () {
  5. var inner = CodeMirror.getMode({}, 'stex')
  6. var outer = CodeMirror.getMode({}, 'markdown')
  7. var innerOptions = {
  8. open: '$',
  9. close: '$',
  10. mode: inner,
  11. delimStyle: 'delim',
  12. innerStyle: 'inner',
  13. }
  14. return CodeMirror.multiplexingMode(outer, innerOptions)
  15. })
  16. var mode = CodeMirror.getMode({}, 'markdown_with_stex')
  17. function MT(name) {
  18. test.mode(name, mode, Array.prototype.slice.call(arguments, 1), 'multiplexing')
  19. }
  20. MT('stexInsideMarkdown', '[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]')
  21. CodeMirror.defineMode('identical_delim_multiplex', function () {
  22. return CodeMirror.multiplexingMode(CodeMirror.getMode({ indentUnit: 2 }, 'javascript'), {
  23. open: '#',
  24. close: '#',
  25. mode: CodeMirror.getMode({}, 'markdown'),
  26. parseDelimiters: true,
  27. innerStyle: 'q',
  28. })
  29. })
  30. var mode2 = CodeMirror.getMode({}, 'identical_delim_multiplex')
  31. test.mode('identical_delimiters_with_parseDelimiters', mode2, ['[keyword let] [def x] [operator =] [q #foo][q&em *bar*][q #];'], 'multiplexing')
  32. })()