package.json 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. {
  2. "name": "oberon-language",
  3. "displayName": "Oberon Language Support",
  4. "version": "0.1.6",
  5. "publisher": "modula2",
  6. "license": "MIT",
  7. "engines": {
  8. "vscode": "^1.90.0"
  9. },
  10. "categories": [
  11. "Programming Languages"
  12. ],
  13. "activationEvents": [
  14. "onLanguage:oberon"
  15. ],
  16. "main": "./out/extension.js",
  17. "contributes": {
  18. "languages": [
  19. {
  20. "id": "oberon",
  21. "aliases": [
  22. "Oberon",
  23. "oberon"
  24. ],
  25. "extensions": [
  26. ".Mod",
  27. ".mod",
  28. ".def",
  29. ".om",
  30. ".od"
  31. ],
  32. "configuration": "./language-configuration.json"
  33. }
  34. ],
  35. "configuration": {
  36. "title": "Oberon",
  37. "properties": {
  38. "modula2.oberon.uppercaseKeywords": {
  39. "type": "boolean",
  40. "default": true,
  41. "description": "Uppercase an Oberon keyword when the completed token is followed by a non-identifier character."
  42. },
  43. "modula2.oberon.format.indentSize": {
  44. "type": "number",
  45. "default": 2,
  46. "description": "Indentation width applied by the Oberon formatter."
  47. },
  48. "modula2.oberon.format.useTabs": {
  49. "type": "boolean",
  50. "default": false,
  51. "description": "Indent with tabs instead of spaces."
  52. },
  53. "modula2.oberon.format.keywordCase": {
  54. "type": "string",
  55. "enum": [
  56. "upper",
  57. "preserve"
  58. ],
  59. "default": "upper",
  60. "description": "Keyword case applied by the formatter. Reserved words written lowercase are uppercased; identifiers that merely look like keywords are left alone."
  61. },
  62. "modula2.oberon.format.spaceAroundOperators": {
  63. "type": "boolean",
  64. "default": true,
  65. "description": "Spaces around operators (:=, +, -, ...)."
  66. },
  67. "modula2.oberon.format.spaceAfterComma": {
  68. "type": "boolean",
  69. "default": true,
  70. "description": "Space after commas."
  71. },
  72. "modula2.oberon.format.spaceBeforeColon": {
  73. "type": "boolean",
  74. "default": false,
  75. "description": "Space before colons in declarations."
  76. },
  77. "modula2.oberon.format.spaceAroundRange": {
  78. "type": "boolean",
  79. "default": true,
  80. "description": "Spaces around the .. range operator."
  81. },
  82. "modula2.oberon.format.emptyLineLimit": {
  83. "type": "number",
  84. "default": 1,
  85. "description": "Maximum consecutive blank lines kept."
  86. },
  87. "modula2.oberon.format.trimTrailingWhitespace": {
  88. "type": "boolean",
  89. "default": true,
  90. "description": "Remove trailing whitespace."
  91. },
  92. "modula2.oberon.format.insertFinalNewline": {
  93. "type": "boolean",
  94. "default": true,
  95. "description": "End the file with a newline."
  96. },
  97. "modula2.oberon.dialect": {
  98. "type": "string",
  99. "enum": [
  100. "oberon07",
  101. "oberon2",
  102. "ulm"
  103. ],
  104. "default": "oberon2",
  105. "description": "Oberon dialect used to validate Oberon files. Builds: grammars/Oberon07/build/O07, Oberon2/build/O2, Ulm/build/Ulm."
  106. },
  107. "modula2.oberon.validators": {
  108. "type": "object",
  109. "default": {},
  110. "description": "Validator command per Oberon dialect, e.g. {\"oberon2\": \"/path/to/O2\"}. Each command receives the temporary source file as its single argument."
  111. }
  112. }
  113. },
  114. "grammars": [
  115. {
  116. "language": "oberon",
  117. "scopeName": "source.oberon",
  118. "path": "./syntaxes/oberon.tmLanguage.json"
  119. }
  120. ],
  121. "snippets": [
  122. {
  123. "language": "oberon",
  124. "path": "./snippets/oberon.json"
  125. }
  126. ],
  127. "jsonValidation": [
  128. {
  129. "fileMatch": "oberon.json",
  130. "url": "./oberon-schema.json"
  131. }
  132. ]
  133. },
  134. "scripts": {
  135. "clean": "rimraf out",
  136. "build": "tsc -p tsconfig.json",
  137. "prepare": "yarn build",
  138. "watch": "tsc -p tsconfig.json --watch"
  139. },
  140. "devDependencies": {
  141. "@types/node": "^24.0.0",
  142. "@types/vscode": "^1.90.0",
  143. "rimraf": "^6.0.1",
  144. "typescript": "^5.9.2"
  145. },
  146. "dependencies": {
  147. "vscode-languageclient": "^9.0.1",
  148. "vscode-languageserver": "^9.0.1",
  149. "vscode-languageserver-textdocument": "^1.0.11"
  150. },
  151. "description": "Oberon language support with Coco/R dialect validators (Oberon-07, Oberon-2, Ulm-Oberon)."
  152. }