##// END OF EJS Templates
tweak history prefix search (up/^p) in qtconsole...
tweak history prefix search (up/^p) in qtconsole moving the cursor around the line could result in weird inconsistencies in the prefix. This simplifies the logic by always using the cursor position to set the history prefix, and better determine when the history prefix has actually changed.

File last commit:

r8053:58574fbf
r9205:ef8c14cd
Show More
test.html
263 lines | 6.0 KiB | text/html | HtmlLexer
<!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>