{ "name": "modula2-language", "displayName": "GNU Modula-2 Language Support", "version": "0.1.5", "publisher": "modula2", "license": "MIT", "engines": { "vscode": "^1.90.0" }, "categories": [ "Programming Languages" ], "activationEvents": [ "onLanguage:modula2", "onLanguage:modula2-definition" ], "main": "./out/extension.js", "contributes": { "languages": [ { "id": "modula2", "aliases": [ "Modula-2", "modula2" ], "extensions": [ ".mod" ], "configuration": "./language-configuration.json" }, { "id": "modula2-definition", "aliases": [ "Modula-2 Definition", "modula2-definition" ], "extensions": [ ".def" ], "configuration": "./language-configuration.json" } ], "grammars": [ { "language": "modula2", "scopeName": "source.modula2", "path": "./syntaxes/modula2.tmLanguage.json" }, { "language": "modula2-definition", "scopeName": "source.modula2.definition", "path": "./syntaxes/modula2-definition.tmLanguage.json" } ], "jsonValidation": [ { "fileMatch": "modula2.json", "url": "./modula2-schema.json" } ], "snippets": [ { "language": "modula2", "path": "./snippets/modula2.json" }, { "language": "modula2-definition", "path": "./snippets/modula2-definition.json" } ], "configuration": { "title": "Modula-2", "properties": { "modula2.uppercaseKeywords": { "type": "boolean", "default": true, "description": "Uppercase a Modula-2 keyword when the completed token is followed by a non-identifier character." }, "modula2.format.indentSize": { "type": "number", "default": 2, "minimum": 0, "maximum": 8, "description": "Indentation width in spaces for formatted Modula-2 code (ignored when modula2.format.useTabs is on)." }, "modula2.format.useTabs": { "type": "boolean", "default": false, "description": "Indent formatted Modula-2 code with tabs instead of spaces." }, "modula2.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 (e.g. a variable named mod) are left alone." }, "modula2.format.spaceAroundOperators": { "type": "boolean", "default": true, "description": "Enforce single spaces around operators (:=, =, +, -, *, /, comparisons). Off produces compact code (a+b)." }, "modula2.format.spaceAfterComma": { "type": "boolean", "default": true, "description": "Enforce a space after each comma. Off produces compact code (a,b)." }, "modula2.format.spaceBeforeColon": { "type": "boolean", "default": false, "description": "Put a space before the colon in declarations (x : INTEGER instead of x: INTEGER)." }, "modula2.format.spaceAroundRange": { "type": "boolean", "default": true, "description": "Enforce spaces around .. in ranges ([0 .. 9]). Off produces compact ranges ([0..9])." }, "modula2.format.emptyLineLimit": { "type": "number", "default": 1, "minimum": 0, "maximum": 10, "description": "Maximum consecutive blank lines kept by the formatter." }, "modula2.format.trimTrailingWhitespace": { "type": "boolean", "default": true, "description": "Remove trailing whitespace on formatted lines." }, "modula2.format.insertFinalNewline": { "type": "boolean", "default": true, "description": "End formatted files with exactly one newline." }, "modula2.cocoR.validatorCommand": { "type": "string", "default": "/home/eric/Projets/Projets-Modula2/MyWork/Theia/GNU-grammar/bin/GM2", "description": "Executable that validates a Modula-2 source file using the generated Coco/R parser. Leave empty to disable Coco/R diagnostics." }, "modula2.cocoR.validatorArguments": { "type": "array", "items": { "type": "string" }, "default": [ "{file}" ], "description": "Arguments passed to the Coco/R validator. Use {file} for the temporary source file." } } } }, "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" } }