{ "name": "oberon-language", "displayName": "Oberon Language Support", "version": "0.1.6", "publisher": "modula2", "license": "MIT", "engines": { "vscode": "^1.90.0" }, "categories": [ "Programming Languages" ], "activationEvents": [ "onLanguage:oberon" ], "main": "./out/extension.js", "contributes": { "languages": [ { "id": "oberon", "aliases": [ "Oberon", "oberon" ], "extensions": [ ".Mod", ".mod", ".def", ".om", ".od" ], "configuration": "./language-configuration.json" } ], "configuration": { "title": "Oberon", "properties": { "modula2.oberon.uppercaseKeywords": { "type": "boolean", "default": true, "description": "Uppercase an Oberon keyword when the completed token is followed by a non-identifier character." }, "modula2.oberon.format.indentSize": { "type": "number", "default": 2, "description": "Indentation width applied by the Oberon formatter." }, "modula2.oberon.format.useTabs": { "type": "boolean", "default": false, "description": "Indent with tabs instead of spaces." }, "modula2.oberon.format.keywordCase": { "type": "string", "enum": [ "upper", "preserve" ], "default": "upper", "description": "Keyword case applied by the formatter. Reserved words written lowercase are uppercased; identifiers that merely look like keywords are left alone." }, "modula2.oberon.format.spaceAroundOperators": { "type": "boolean", "default": true, "description": "Spaces around operators (:=, +, -, ...)." }, "modula2.oberon.format.spaceAfterComma": { "type": "boolean", "default": true, "description": "Space after commas." }, "modula2.oberon.format.spaceBeforeColon": { "type": "boolean", "default": false, "description": "Space before colons in declarations." }, "modula2.oberon.format.spaceAroundRange": { "type": "boolean", "default": true, "description": "Spaces around the .. range operator." }, "modula2.oberon.format.emptyLineLimit": { "type": "number", "default": 1, "description": "Maximum consecutive blank lines kept." }, "modula2.oberon.format.trimTrailingWhitespace": { "type": "boolean", "default": true, "description": "Remove trailing whitespace." }, "modula2.oberon.format.insertFinalNewline": { "type": "boolean", "default": true, "description": "End the file with a newline." }, "modula2.oberon.dialect": { "type": "string", "enum": [ "oberon07", "oberon2", "ulm" ], "default": "oberon2", "description": "Oberon dialect used to validate Oberon files. Builds: grammars/Oberon07/build/O07, Oberon2/build/O2, Ulm/build/Ulm." }, "modula2.oberon.validators": { "type": "object", "default": {}, "description": "Validator command per Oberon dialect, e.g. {\"oberon2\": \"/path/to/O2\"}. Each command receives the temporary source file as its single argument." } } }, "grammars": [ { "language": "oberon", "scopeName": "source.oberon", "path": "./syntaxes/oberon.tmLanguage.json" } ], "snippets": [ { "language": "oberon", "path": "./snippets/oberon.json" } ], "jsonValidation": [ { "fileMatch": "oberon.json", "url": "./oberon-schema.json" } ] }, "scripts": { "clean": "rimraf out", "build": "tsc -p tsconfig.json", "prepare": "yarn build", "watch": "tsc -p tsconfig.json --watch" }, "devDependencies": { "@types/node": "^24.0.0", "@types/vscode": "^1.90.0", "rimraf": "^6.0.1", "typescript": "^5.9.2" }, "dependencies": { "vscode-languageclient": "^9.0.1", "vscode-languageserver": "^9.0.1", "vscode-languageserver-textdocument": "^1.0.11" }, "description": "Oberon language support with Coco/R dialect validators (Oberon-07, Oberon-2, Ulm-Oberon)." }