{"id":32124270,"url":"https://github.com/stefanh-at/source-engine-vscode-extension","last_synced_at":"2025-10-20T21:48:46.344Z","repository":{"id":36988179,"uuid":"399418968","full_name":"StefanH-AT/Source-Engine-VSCode-Extension","owner":"StefanH-AT","description":"A vscode extension that adds intelligent support for source engine file types and operations","archived":false,"fork":false,"pushed_at":"2025-07-10T19:05:02.000Z","size":1448,"stargazers_count":42,"open_issues_count":6,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T21:48:41.253Z","etag":null,"topics":["source-engine","source-engine-games","source-engine-sdk","typescript","valve","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=stefan-h-at.source-engine-support","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StefanH-AT.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-08-24T10:09:23.000Z","updated_at":"2025-10-05T01:59:24.000Z","dependencies_parsed_at":"2025-07-11T01:19:49.311Z","dependency_job_id":null,"html_url":"https://github.com/StefanH-AT/Source-Engine-VSCode-Extension","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/StefanH-AT/Source-Engine-VSCode-Extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanH-AT%2FSource-Engine-VSCode-Extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanH-AT%2FSource-Engine-VSCode-Extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanH-AT%2FSource-Engine-VSCode-Extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanH-AT%2FSource-Engine-VSCode-Extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StefanH-AT","download_url":"https://codeload.github.com/StefanH-AT/Source-Engine-VSCode-Extension/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanH-AT%2FSource-Engine-VSCode-Extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280166619,"owners_count":26283782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-20T02:00:06.978Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["source-engine","source-engine-games","source-engine-sdk","typescript","valve","vscode","vscode-extension"],"created_at":"2025-10-20T21:48:45.086Z","updated_at":"2025-10-20T21:48:46.333Z","avatar_url":"https://github.com/StefanH-AT.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Source Engine Support for Vscode\n\n[![CI Test](https://github.com/StefanH-AT/Source-Engine-VSCode-Extension/actions/workflows/test.yml/badge.svg)](https://github.com/StefanH-AT/Source-Engine-VSCode-Extension/actions/workflows/test.yml)\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)\n![Release](https://img.shields.io/github/release/StefanH-AT/Source-Engine-VSCode-Extension.svg)\n\n![VSCODE](https://img.shields.io/badge/Visual_Studio_Code-0078D4?style=\u0026logo=visual%20studio%20code\u0026logoColor=white)\n![ESLINT](https://img.shields.io/badge/eslint-3A33D1?style=flat\u0026logo=eslint\u0026logoColor=white)\n![TYPESCRIPT](https://img.shields.io/badge/TypeScript-007ACC?style=flat\u0026logo=typescript\u0026logoColor=white)\n![NODE.JS](https://img.shields.io/badge/Node.js-43853D?style=flat\u0026logo=node.js\u0026logoColor=white)\n\n\u003ca href=\"https://github.com/StefanH-AT/Source-Engine-VSCode-Extension/graphs/contributors\"\u003e\n\u003cimg src=\"https://contrib.rocks/image?repo=StefanH-AT/Source-Engine-VSCode-Extension\" height=\"24\"/\u003e\n\u003c/a\u003e\n\n[Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=stefan-h-at.source-engine-support) -\n[OpenVSX Registry](https://open-vsx.org/extension/stefan-h-at/source-engine-support)\n\n[Discord](https://discord.gg/BDDxkNwXWw) - \n[Bugs](https://github.com/StefanH-AT/Source-Engine-VSCode-Extension)\n\n---\n\nThis extension adds intelligent syntax highlighting and additional tooling for Source Engine file formats.\n\n---\n\n# State of this project\n\nLooking at the last commit times, you may assume this project is abandoned. But I would rather call it done. I built this extension to aid in my work on [Portal: Revolution](https://store.steampowered.com/app/601360/Portal_Revolution/), which has now released. I have added all the features I wanted and don't know what else I'd add. If you find any bugs, please feel free to report them. I want to keep this extension in a working state, but have no plans to add any new features unless I need them in another modding endevour.\n\n---\n\n## **Syntax highlighting**\n\nAvailable for:\n\n- KeyValue files \n  - .vdf .res .acf .kv .vmf .vmm .vmx\n  - .txt files can be auto-detected as being KV files\n- .vmt\n- .fgd\n- .qc\n- .cfg\n- lights.rad\n- .vpc, .vgc\n- .smd\n- .fxc and _fxc.h\n\n![Syntax highlighting in vmt files](vmt-highlighting.jpg)\n\n## **In-Editor compilation**\n\nInstead of juggling standalone tools or CLI programs, simply **compile model (.qc) and captions (subtitles_english.txt)** right inside of the extension.\n\n![Compile button](compile_button.png)\n\n## **KeyValue file auto-detection**\n\nIn Source, many KeyValue files are saved with a `.txt` extension. Since not all .txt files should be treated as KeyValue files, this extension can auto-detect KeyValue files which end in `.txt`. Instead, KeyValue files are matched using a list of common keyvalue file names. (e.g.: gameinfo.txt, game_sounds_*.txt, subtitles_engish.txt...)\n\n## Full feature list\n\nHere's a list of all the things that are implemented in this extension\n\n### General\n- [x] KeyValue syntax highlighting\n- [x] KeyValue semantic highlighting\n- [x] Auto-detect common file names like gameinfo.txt\n- [x] Semantic Tokenizer\n- [x] Error detection\n- [x] Duplicate key detection\n- [x] Support for `#include` and `#base`\n- [x] Support for conditionals (e.g.: `[$Debug]`)\n\n### VMT\n- [x] .vmt syntax highlighting\n- [x] .vmt semantic highlighting with error detection and completions\n- [x] Parameter name completion\n- [x] Config for parameters\n- [x] Parameter value completion\n- [x] Parameter value validation dependent on parameter name\n- [x] Texture (vtf) file path completion and missing file detection\n- [x] Color value preview\n\n### FGD\n- [x] .fgd syntax highlighting\n- [x] UnifyFGD syntax support (Hammer Addons)\n\n### QC\n- [x] QC syntax highlighting\n- [x] Compile model button\n  - [x] Configuration for mdlcompile.exe\n  - [x] Configuration for game root path\n\n### Captions\n- [x] Captions syntax highlighting\n- [x] Captions markup highlighting (I, B, clr tags...)\n- [x] Captions color preview (clr tags)\n- [x] In-editor Compile captions button\n\n### CFG\n- [x] .cfg syntax highlighting\n\n### VPC\n- [x] .vpc and .vgc syntax highlighting\n\n### Lights.rad\n- [x] .rad file syntax highlighting\n\n### Soundscripts\n- [x] Soundscript syntax highlighting\n- [x] Soundscript snippets\n\n### SMD\n- [x] .smd syntax highlighting\n\n### FXC\n- [x] .fxc syntax highlighting\n- [x] _fxc.h syntax highlighting (Shader header files)\n\n---\n\n## Sourcelib\nThis extension implements the features seen in [sourcelib](https://github.com/source-lib/sourcelib). \n\n## Contributing\nThis repository uses trunk based development, which means that all changes can be pushed straight to master. Every commit is automatically tested via the CI pipeline. Once a new version tag is pushed, the release is deployed. \n\nAs an outside contributor, please create your pull requests to merge to the **master** branch. Do not edit changelog.md or the feature listings in readme.md as the changelog will be handled later when releasing.\n\nMake sure all workflows succeed. To validate locally:\n```\nnpm run lint\nnpm run test\n```\n\n## Compiling and testing locally\nUsers can just install this extension on the VSCode Marketplace, but developers might want to run the development build of the extension.\n\n### Prerequisites\n1) Install NPM and NodeJS (\u003ev12)\n2) Install Visual Studio Code (Duh)\n3) Clone the repository\n4) Run `npm install` in the repository's folder, to install the dependencies\n\n### Testing\nTo start the unit tests, run `npm run test`. The project will be automatically compiled.\n\n### Benchmarking\nTo run the benchmark tests, run `npm run benchmark`. The project will be automatically compiled\n\n### Running the extension\n1) To start the extension, first compile the project `npm run build` (Or `npm run watch` to auto-compile on every file change)\n2) Open the repository in VSCode\n3) Open the 'Run and Debug' tab\n4) Select the 'Extension' run configuration on the dropdown on the top\n5) Run by pressing F5\n\n## License\nThis project is licensed under the GNU Public License version 3: [License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanh-at%2Fsource-engine-vscode-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanh-at%2Fsource-engine-vscode-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanh-at%2Fsource-engine-vscode-extension/lists"}