test.html
263 lines
| 6.0 KiB
| text/html
|
HtmlLexer
Matthias BUSSONNIER
|
r8053 | <!doctype html> | ||
<html> | ||||
<head> | ||||
<title>CodeMirror: sTeX mode</title> | ||||
<link rel="stylesheet" href="../../lib/codemirror.css"> | ||||
<script src="../../lib/codemirror.js"></script> | ||||
<script src="stex.js"></script> | ||||
<link rel="stylesheet" href="../../test/mode_test.css"> | ||||
<script src="../../test/mode_test.js"></script> | ||||
<link rel="stylesheet" href="../../doc/docs.css"> | ||||
</head> | ||||
<body> | ||||
<h1>Tests for the sTeX Mode</h1> | ||||
<h2>Basics</h2> | ||||
<script language="javascript"> | ||||
MT = ModeTest; | ||||
MT.test('foo', | ||||
null, 'foo'); | ||||
MT.test('foo bar', | ||||
null, 'foo', | ||||
null, ' bar'); | ||||
</script> | ||||
<h2>Tags</h2> | ||||
<script language="javascript"> | ||||
MT.test('\\begin{document}\n\\end{document}', | ||||
'tag', '\\begin', | ||||
'bracket', '{', | ||||
'atom', 'document', | ||||
'bracket', '}', | ||||
'tag', '\\end', | ||||
'bracket', '{', | ||||
'atom', 'document', | ||||
'bracket', '}'); | ||||
MT.test('\\begin{equation}\n E=mc^2\n\\end{equation}', | ||||
'tag', '\\begin', | ||||
'bracket', '{', | ||||
'atom', 'equation', | ||||
'bracket', '}', | ||||
null, ' ', | ||||
null, ' ', | ||||
null, 'E', | ||||
null, '=mc', | ||||
null, '^2', | ||||
'tag', '\\end', | ||||
'bracket', '{', | ||||
'atom', 'equation', | ||||
'bracket', '}'); | ||||
MT.test('\\begin{module}[]', | ||||
'tag', '\\begin', | ||||
'bracket', '{', | ||||
'atom', 'module', | ||||
'bracket', '}', | ||||
'bracket', '[', | ||||
'bracket', ']'); | ||||
MT.test('\\begin{module}[id=bbt-size]', | ||||
'tag', '\\begin', | ||||
'bracket', '{', | ||||
'atom', 'module', | ||||
'bracket', '}', | ||||
'bracket', '[', | ||||
null, 'id', | ||||
null, '=bbt-size', | ||||
'bracket', ']'); | ||||
MT.test('\\importmodule[b-b-t]{b-b-t}', | ||||
'tag', '\\importmodule', | ||||
'bracket', '[', | ||||
'string', 'b-b-t', | ||||
'bracket', ']', | ||||
'bracket', '{', | ||||
'builtin', 'b-b-t', | ||||
'bracket', '}'); | ||||
MT.test('\\importmodule[\\KWARCslides{dmath/en/cardinality}]{card}', | ||||
'tag', '\\importmodule', | ||||
'bracket', '[', | ||||
'tag', '\\KWARCslides', | ||||
'bracket', '{', | ||||
'string', 'dmath', | ||||
'string', '/en', | ||||
'string', '/cardinality', | ||||
'bracket', '}', | ||||
'bracket', ']', | ||||
'bracket', '{', | ||||
'builtin', 'card', | ||||
'bracket', '}'); | ||||
MT.test('\\PSforPDF[1]{#1}', // could treat #1 specially | ||||
'tag', '\\PSforPDF', | ||||
'bracket', '[', | ||||
'atom', '1', | ||||
'bracket', ']', | ||||
'bracket', '{', | ||||
null, '#1', | ||||
'bracket', '}'); | ||||
</script> | ||||
<h2>Comments</h2> | ||||
<script language="javascript"> | ||||
MT.test('% foo', | ||||
'comment', '%', | ||||
'comment', ' foo'); | ||||
MT.test('\\item% bar', | ||||
'tag', '\\item', | ||||
'comment', '%', | ||||
'comment', ' bar'); | ||||
MT.test(' % \\item', | ||||
null, ' ', | ||||
'comment', '%', | ||||
'comment', ' \\item'); | ||||
MT.test('%\nfoo', | ||||
'comment', '%', | ||||
null, 'foo'); | ||||
</script> | ||||
<h2>Errors</h2> | ||||
<script language="javascript"> | ||||
MT.test('\\begin}{', | ||||
'tag', '\\begin', | ||||
'error', '}', | ||||
'bracket', '{'); | ||||
MT.test('\\item]{', | ||||
'tag', '\\item', | ||||
'error', ']', | ||||
'bracket', '{'); | ||||
MT.test('% }', | ||||
'comment', '%', | ||||
'comment', ' }'); | ||||
</script> | ||||
<h2>Character Escapes</h2> | ||||
<script language="javascript"> | ||||
MT.test('the \\# key', | ||||
null, 'the', | ||||
null, ' ', | ||||
'tag', '\\#', | ||||
null, ' key'); | ||||
MT.test('a \\$5 stetson', | ||||
null, 'a', | ||||
null, ' ', | ||||
'tag', '\\$', | ||||
'atom', 5, | ||||
null, ' stetson'); | ||||
MT.test('100\\% beef', | ||||
'atom', '100', | ||||
'tag', '\\%', | ||||
null, ' beef'); | ||||
MT.test('L \\& N', | ||||
null, 'L', | ||||
null, ' ', | ||||
'tag', '\\&', | ||||
null, ' N'); | ||||
MT.test('foo\\_bar', | ||||
null, 'foo', | ||||
'tag', '\\_', | ||||
null, 'bar'); | ||||
MT.test('\\emph{\\{}', | ||||
'tag', '\\emph', | ||||
'bracket','{', | ||||
'tag', '\\{', | ||||
'bracket','}'); | ||||
MT.test('\\emph{\\}}', | ||||
'tag', '\\emph', | ||||
'bracket','{', | ||||
'tag', '\\}', | ||||
'bracket','}'); | ||||
MT.test('section \\S1', | ||||
null, 'section', | ||||
null, ' ', | ||||
'tag', '\\S', | ||||
'atom', '1'); | ||||
MT.test('para \\P2', | ||||
null, 'para', | ||||
null, ' ', | ||||
'tag', '\\P', | ||||
'atom', '2'); | ||||
</script> | ||||
<h2>Spacing control</h2> | ||||
<script language="javascript"> | ||||
MT.test('x\\,y', // thinspace | ||||
null, 'x', | ||||
'tag', '\\,', | ||||
null, 'y'); | ||||
MT.test('x\\;y', // thickspace | ||||
null, 'x', | ||||
'tag', '\\;', | ||||
null, 'y'); | ||||
MT.test('x\\!y', // negative thinspace | ||||
null, 'x', | ||||
'tag', '\\!', | ||||
null, 'y'); | ||||
MT.test('J.\\ L.\\ is', // period not ending a sentence | ||||
null, 'J', | ||||
null, '.', | ||||
null, '\\', | ||||
null, ' L', | ||||
null, '.', | ||||
null, '\\', | ||||
null, ' is'); // maybe could be better | ||||
MT.test('X\\@. The', // period ending a sentence | ||||
null, 'X', | ||||
'tag', '\\@', | ||||
null, '.', | ||||
null, ' The'); | ||||
MT.test('{\\em If\\/} I', // italic correction | ||||
'bracket', '{', | ||||
'tag', '\\em', | ||||
null, ' ', | ||||
null, 'If', | ||||
'tag', '\\/', | ||||
'bracket', '}', | ||||
null, ' ', | ||||
null, 'I'); | ||||
</script> | ||||
<h2>New Commands</h2> | ||||
Should be able to define a new command that happens to be a method on Array | ||||
(e.g. <tt>pop</tt>): | ||||
<script language="javascript"> | ||||
MT.test('\\newcommand{\\pop}', | ||||
'tag', '\\newcommand', | ||||
'bracket', '{', | ||||
'tag', '\\pop', | ||||
'bracket', '}'); | ||||
</script> | ||||
<h2>Summary</h2> | ||||
<script language="javascript"> | ||||
MT.printSummary(); | ||||
</script> | ||||
</body> | ||||
</html> | ||||