// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

// codemirror: v.5.61.1

(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")
})();

// #END
