{ "name": "ra3-mod-xml", "displayName": "RA3 Mod XML", "description": "Red Alert 3 Mod XML tooling: syntax highlighting, completions, reference navigation and diagnostics for SAGE/BinaryAssetBuilder XML.", "version": "0.1.0", "publisher": "ra3-mod-xml", "license": "MIT", "engines": { "vscode": "^1.85.0" }, "categories": [ "Programming Languages", "Linters" ], "keywords": [ "red alert 3", "ra3", "mod", "sage", "xml", "binaryassetbuilder" ], "main": "./dist/extension.js", "activationEvents": [ "workspaceContains:**/Data/Mod.xml", "workspaceContains:**/mod.babproj", "workspaceContains:**/*.babproj" ], "contributes": { "grammars": [ { "scopeName": "source.ra3modxml", "path": "./syntaxes/ra3modxml.tmLanguage.json", "injectTo": [ "source.xml" ] } ], "configuration": { "title": "RA3 Mod XML", "properties": { "ra3modxml.sdkPath": { "type": "string", "default": "C:\\Apps\\RA3-MODSDK-X", "description": "Path to the RA3 Mod SDK root. Used to resolve DATA:/ART:/AUDIO: includes and to index vanilla SageXml sources." }, "ra3modxml.indexSageXml": { "type": "boolean", "default": true, "description": "Index vanilla game XML sources shipped with the SDK (SageXml) so completions/references can resolve vanilla asset ids." }, "ra3modxml.reportUnresolvedReferences": { "type": "string", "enum": [ "warning", "information", "none" ], "default": "warning", "description": "Severity for attribute references (CommandSet=..., inheritFrom=...) that cannot be resolved in the index. IDs that only exist in compiled manifests cannot be resolved yet." }, "ra3modxml.diagnoseUnknownElements": { "type": "boolean", "default": true, "description": "Report element/attribute names that are not known from the bundled XSD model." }, "ra3modxml.definitionMode": { "type": "string", "enum": [ "all", "project-only" ], "default": "all", "description": "Go-to-definition candidates: 'all' lists the mod definition together with any vanilla (SDK/manifest) definitions (mod first); 'project-only' jumps directly to the mod definition and skips vanilla candidates when the id is defined in the project." }, "ra3modxml.additionalDataSearchPaths": { "type": "array", "items": { "type": "string" }, "default": [], "description": "Extra absolute directories appended to the DATA: search path (checked after the project folders)." } } }, "commands": [ { "command": "ra3modxml.reindex", "title": "RA3 Mod XML: Re-index workspace" }, { "command": "ra3modxml.openIndexReport", "title": "RA3 Mod XML: Show index report" } ] }, "scripts": { "build": "node esbuild.mjs", "watch": "node esbuild.mjs --watch", "generate-model": "node tools/xsd-to-model.mjs", "pretest": "tsc", "test": "node --test \"test/*.test.mjs\"", "package": "npm run build && vsce package" }, "dependencies": { "fast-xml-parser": "^4.5.0" }, "devDependencies": { "@vscode/vsce": "^2.30.0", "@types/node": "^20.14.0", "@types/vscode": "^1.85.0", "esbuild": "^0.21.5", "typescript": "^5.5.0" } }