{ "name": "pascal-language", "displayName": "Pascal Language Support", "version": "0.1.5", "publisher": "modula2", "license": "MIT", "engines": { "vscode": "^1.90.0" }, "categories": [ "Programming Languages" ], "activationEvents": [ "onLanguage:pascal" ], "main": "./out/extension.js", "contributes": { "languages": [ { "id": "pascal", "aliases": [ "Pascal", "pascal" ], "extensions": [ ".pas", ".pp", ".p" ], "configuration": "./language-configuration.json" } ], "configuration": { "title": "Pascal", "properties": { "modula2.pascal.uppercaseKeywords": { "type": "boolean", "default": true, "description": "Uppercase a Pascal keyword when the completed token is followed by a non-identifier character." }, "modula2.pascal.format.indentSize": { "type": "number", "default": 2, "description": "Indentation width applied by the Pascal formatter." }, "modula2.pascal.format.useTabs": { "type": "boolean", "default": false, "description": "Indent with tabs instead of spaces." }, "modula2.pascal.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.pascal.format.spaceAroundOperators": { "type": "boolean", "default": true, "description": "Spaces around operators (:=, +, -, ...)." }, "modula2.pascal.format.spaceAfterComma": { "type": "boolean", "default": true, "description": "Space after commas." }, "modula2.pascal.format.spaceBeforeColon": { "type": "boolean", "default": false, "description": "Space before colons in declarations." }, "modula2.pascal.format.spaceAroundRange": { "type": "boolean", "default": true, "description": "Spaces around the .. range operator." }, "modula2.pascal.format.emptyLineLimit": { "type": "number", "default": 1, "description": "Maximum consecutive blank lines kept." }, "modula2.pascal.format.trimTrailingWhitespace": { "type": "boolean", "default": true, "description": "Remove trailing whitespace." }, "modula2.pascal.format.insertFinalNewline": { "type": "boolean", "default": true, "description": "End the file with a newline." }, "modula2.pascal.dialect": { "type": "string", "enum": [ "p2", "p4", "p6", "pascal", "turbopascal3", "freepascal", "blaise", "pascals" ], "default": "freepascal", "description": "Pascal dialect used to validate .pas files. Builds: grammars/P2/build/P2, P4/build/P4, P6/build/P6, Pascal/build/PStd, TurboPascal3/build/TP3, FreePascal/build/FPC, Blaise/build/BlaiseV, PascalS/build/PascalS." }, "modula2.pascal.validators": { "type": "object", "default": {}, "description": "Validator command per Pascal dialect, e.g. {\"freepascal\": \"/path/to/FPC\"}. Each command receives the temporary source file as its single argument. Never point these at pcom/psc oracle compilers (they can hang)." } } }, "grammars": [ { "language": "pascal", "scopeName": "source.pascal", "path": "./syntaxes/pascal.tmLanguage.json" } ], "snippets": [ { "language": "pascal", "path": "./snippets/pascal.json" } ], "jsonValidation": [ { "fileMatch": "pascal.json", "url": "./pascal-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": "Pascal language support with Coco/R dialect validators (P2, P4, P6, Pascal, Turbo Pascal 3, Free Pascal, Blaise, Pascal-S)." }