testdrive.tmLanguage.json 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. {
  2. "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
  3. "name": "Testdrive",
  4. "patterns": [
  5. { "include": "#comment" },
  6. { "include": "#command" },
  7. { "include": "#json" },
  8. { "include": "#sql" },
  9. { "include": "#string" }
  10. ],
  11. "repository": {
  12. "comment": {
  13. "patterns": [{
  14. "name": "comment.line.number-sign.testdrive",
  15. "match": "^#.*$"
  16. }]
  17. },
  18. "command": {
  19. "patterns": [{
  20. "name": "meta.command",
  21. "begin": "^(\\$)\\s*(\\S+)?",
  22. "while": "^(?= )",
  23. "beginCaptures": {
  24. "1": { "name": "keyword.operator.testdrive" },
  25. "2": { "name": "storage.type.testdrive" }
  26. },
  27. "patterns": [
  28. { "include": "#command-arg-name" },
  29. { "include": "#json" },
  30. { "include": "#number" },
  31. { "include": "#variable" },
  32. { "include": "#symbol" }
  33. ]
  34. }]
  35. },
  36. "command-arg-name": {
  37. "patterns": [{
  38. "contentName": "variable.parameter.testdrive",
  39. "begin": "\\s(?=\\S)",
  40. "end": "="
  41. }]
  42. },
  43. "number": {
  44. "patterns": [{
  45. "name": "constant.numeric.testdrive",
  46. "match": "\\b-?(\\d*\\.)?\\d+\\b"
  47. }]
  48. },
  49. "json": {
  50. "patterns": [{
  51. "begin": "{",
  52. "end": "}",
  53. "patterns": [{ "include": "source.json" }]
  54. }]
  55. },
  56. "sql": {
  57. "patterns": [{
  58. "begin": "^(>|!)",
  59. "while": "^(?= )",
  60. "beginCaptures": {
  61. "1": { "name": "keyword.operator.testdrive" }
  62. },
  63. "patterns": [{ "include": "source.mzsql" }]
  64. }]
  65. },
  66. "string": {
  67. "name": "string.quoted.double.testdrive",
  68. "begin": "\"",
  69. "end": "\"",
  70. "patterns": [
  71. {
  72. "name": "constant.character.escape.testdrive",
  73. "match": "\\\\(\"|n|t|r|0)"
  74. }
  75. ]
  76. },
  77. "symbol": {
  78. "name": "string.unquoted.testdrive",
  79. "begin": "\\S",
  80. "end": "\\S"
  81. },
  82. "variable": {
  83. "name": "variable.other.bracket.testdrive",
  84. "begin": "\\${",
  85. "end": "}",
  86. "captures": {
  87. "0": { "name": "punctuation.definition.variable.testdrive" }
  88. }
  89. }
  90. },
  91. "scopeName": "source.testdrive"
  92. }