test.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // CodeMirror, copyright (c) by Marijn Haverbeke and others
  2. // Distributed under an MIT license: https://codemirror.net/LICENSE
  3. ;(function () {
  4. var mode = CodeMirror.getMode({ indentUnit: 2 }, 'dylan')
  5. function MT(name) {
  6. test.mode(name, mode, Array.prototype.slice.call(arguments, 1))
  7. }
  8. MT(
  9. 'comments',
  10. '[comment // This is a line comment]',
  11. '[comment /* This is a block comment */]',
  12. '[comment /* This is a multi]',
  13. '[comment line comment]',
  14. '[comment */]',
  15. '[comment /* And this is a /*]',
  16. '[comment /* nested */ comment */]'
  17. )
  18. MT('unary_operators', '[operator -][variable a]', '[operator -] [variable a]', '[operator ~][variable a]', '[operator ~] [variable a]')
  19. MT(
  20. 'binary_operators',
  21. '[variable a] [operator +] [variable b]',
  22. '[variable a] [operator -] [variable b]',
  23. '[variable a] [operator *] [variable b]',
  24. '[variable a] [operator /] [variable b]',
  25. '[variable a] [operator ^] [variable b]',
  26. '[variable a] [operator =] [variable b]',
  27. '[variable a] [operator ==] [variable b]',
  28. '[variable a] [operator ~=] [variable b]',
  29. '[variable a] [operator ~==] [variable b]',
  30. '[variable a] [operator <] [variable b]',
  31. '[variable a] [operator <=] [variable b]',
  32. '[variable a] [operator >] [variable b]',
  33. '[variable a] [operator >=] [variable b]',
  34. '[variable a] [operator &] [variable b]',
  35. '[variable a] [operator |] [variable b]',
  36. '[variable a] [operator :=] [variable b]'
  37. )
  38. MT('integers', '[number 1]', '[number 123]', '[number -123]', '[number +456]', '[number #b010]', '[number #o073]', '[number #xabcDEF123]')
  39. MT('floats', '[number .3]', '[number -1.]', '[number -2.335]', '[number +3.78d1]', '[number 3.78s-1]', '[number -3.32e+5]')
  40. MT(
  41. 'characters_and_strings',
  42. "[string 'a']",
  43. "[string '\\\\'']",
  44. '[string ""]',
  45. '[string "a"]',
  46. '[string "abc def"]',
  47. '[string "More escaped characters: \\\\\\\\ \\\\a \\\\b \\\\e \\\\f \\\\n \\\\r \\\\t \\\\0 ..."]'
  48. )
  49. MT(
  50. 'brackets',
  51. '[bracket #[[]]]',
  52. '[bracket #()]',
  53. '[bracket #(][number 1][bracket )]',
  54. '[bracket [[][number 1][punctuation ,] [number 3][bracket ]]]',
  55. '[bracket ()]',
  56. '[bracket {}]',
  57. '[keyword if] [bracket (][variable foo][bracket )]',
  58. '[bracket (][number 1][bracket )]',
  59. '[bracket [[][number 1][bracket ]]]'
  60. )
  61. MT(
  62. 'hash_words',
  63. '[punctuation ##]',
  64. '[atom #f]',
  65. '[atom #F]',
  66. '[atom #t]',
  67. '[atom #T]',
  68. '[atom #all-keys]',
  69. '[atom #include]',
  70. '[atom #key]',
  71. '[atom #next]',
  72. '[atom #rest]',
  73. '[string #"foo"]',
  74. '[error #invalid]'
  75. )
  76. })()