semir.tmLanguage.json 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. {
  2. "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
  3. "name": "semir",
  4. "scopeName": "source.carbon-semir",
  5. "fileTypes": ["semir"],
  6. "patterns": [
  7. {
  8. "include": "#keywords"
  9. },
  10. {
  11. "include": "#identifiers"
  12. },
  13. {
  14. "include": "#strings"
  15. },
  16. {
  17. "include": "#numbers"
  18. },
  19. {
  20. "include": "#labels"
  21. },
  22. {
  23. "include": "#punctuation"
  24. }
  25. ],
  26. "repository": {
  27. "keywords": {
  28. "patterns": [
  29. {
  30. "name": "storage.type.semir",
  31. "match": "\\b(var|ref|init|out|type|val)\\b"
  32. },
  33. {
  34. "name": "storage.modifier.semir",
  35. "match": "\\b(concrete)\\b"
  36. },
  37. {
  38. "name": "support.function.semir",
  39. "match": "\\b[a-z_][a-z0-9_]+\\b"
  40. }
  41. ]
  42. },
  43. "identifiers": {
  44. "patterns": [
  45. {
  46. "name": "entity.name.variable.semir",
  47. "match": "(?:[a-zA-Z0-9_]+\\.)?%[a-zA-Z0-9_.]+"
  48. },
  49. {
  50. "name": "entity.name.function.semir",
  51. "match": "@[a-zA-Z0-9_.]+"
  52. }
  53. ]
  54. },
  55. "labels": {
  56. "patterns": [
  57. {
  58. "name": "entity.name.label.semir",
  59. "match": "![a-zA-Z0-9_]+:"
  60. }
  61. ]
  62. },
  63. "strings": {
  64. "patterns": [
  65. {
  66. "name": "string.quoted.double.semir",
  67. "begin": "\"",
  68. "end": "\"",
  69. "patterns": [
  70. {
  71. "name": "constant.character.escape.semir",
  72. "match": "\\\\."
  73. }
  74. ]
  75. }
  76. ]
  77. },
  78. "numbers": {
  79. "patterns": [
  80. {
  81. "name": "constant.numeric.semir",
  82. "match": "\\b\\d+(\\.\\d+)?\\b"
  83. }
  84. ]
  85. },
  86. "punctuation": {
  87. "patterns": [
  88. {
  89. "name": "keyword.operator.semir",
  90. "match": "(=>|->|=|:)"
  91. }
  92. ]
  93. }
  94. }
  95. }