{"id":51149006,"url":"https://github.com/millenniumdawn/cwtools-vscode","last_synced_at":"2026-06-26T05:00:18.334Z","repository":{"id":362700736,"uuid":"1188830270","full_name":"MillenniumDawn/cwtools-vscode","owner":"MillenniumDawn","description":"A VS Code extension providing language server support for paradox script files using cwtools","archived":false,"fork":false,"pushed_at":"2026-06-23T17:43:18.000Z","size":148717,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-23T18:12:53.375Z","etag":null,"topics":["hoi4","tools","visual-studio-code"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MillenniumDawn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-22T16:36:19.000Z","updated_at":"2026-06-23T17:43:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MillenniumDawn/cwtools-vscode","commit_stats":null,"previous_names":["millenniumdawn/cwtools-vscode"],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/MillenniumDawn/cwtools-vscode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillenniumDawn%2Fcwtools-vscode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillenniumDawn%2Fcwtools-vscode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillenniumDawn%2Fcwtools-vscode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillenniumDawn%2Fcwtools-vscode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MillenniumDawn","download_url":"https://codeload.github.com/MillenniumDawn/cwtools-vscode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillenniumDawn%2Fcwtools-vscode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34803678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"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":["hoi4","tools","visual-studio-code"],"created_at":"2026-06-26T05:00:17.081Z","updated_at":"2026-06-26T05:00:18.250Z","avatar_url":"https://github.com/MillenniumDawn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [CWTools MD Edition](https://github.com/MillenniumDawn/cwtools-vscode)\n\n**Paradox Language Features for Visual Studio Code**\n\n## Origin\n\nThis is a fork of [cwtools/cwtools-vscode](https://github.com/cwtools/cwtools-vscode). The original extension wrapped an F# language server from [cwtools/cwtools](https://github.com/cwtools/cwtools); this fork has moved to a Rust-based server binary (cwtools-rs) and ships that.\n\n## Disclaimer\n\nThis extension is still in preview, it may not work, it may stop working at any time.\n**Make backups of your mod files.**\n\n## Supported games\n\n* Stellaris\n* Hearts of Iron IV\n* Europa Universalis IV\n* Imperator: Rome - outdated, help needed\n* Crusader Kings II - partial\n* Crusader Kings III - in progress, help needed\n* Victoria 3 - in progress, help needed\n\n## Features\n\n* Immediate highlighting of syntax errors\n* Autocomplete while you type, providing descriptions when available\n* Tooltips on hover showing:\n  * Related localisation\n  * Documentation for that element\n  * Scope context at that position\n* A wide range of validators for common, interface, and events, checking\n  * That required localisation keys are defined\n  * Existence of effects/triggers/modifiers\n  * Scope context for used effects/triggers/modifiers\n  * Usage of scripted effects/triggers\n  * Correct entries for weights/AI_chance/etc\n  * That event\\_targets are saved before they're used\n  * That referenced sprites and graphics files exist\n  * and a number of other specific validators\n* \"Code actions\" to generate .yml for missing localisation\n\n## Usage\n\n1. Install this extension\n2. Open your mod folder directly, which should be within a folder containing the game name:\n\n* `C:\\Users\\name\\Documents\\Paradox Interactive\\Stellaris\\mod\\your_mod`\n\n1. Follow the prompts to select your vanilla folder\n2. Edit files and watch syntax errors show up when you make mistakes\n3. Wait up to a minute for the extension to scan your mod and find errors\n\n### Multiple mods - workspace\n\nIf you have multiple mods that need to be loaded at once, use VS Code's [multi-root workspace](https://code.visualstudio.com/docs/editing/workspaces/workspaces#_untitled-multiroot-workspaces) feature.\n\n1. Open your first mod\n2. Use \"File\", \"Add folder to workspace\" to add your next mod\n3. cwtools should reload including both mods and vanilla in context using correct mod load order\n\nIf you want to browse vanilla files, you can use the \"CWTOOLS LOADED FILES\" section in the Explorer tab.\n\n### Completion\n\n![Completion](https://raw.githubusercontent.com/MillenniumDawn/cwtools-vscode/refs/heads/main/release/docs/completion.gif)\n\n### Tooltips\n\n![Tooltips](https://raw.githubusercontent.com/MillenniumDawn/cwtools-vscode/refs/heads/main/release/docs/tooltips.gif)\n\n### Scope tooltips\n\n![Scope tooltips](https://raw.githubusercontent.com/MillenniumDawn/cwtools-vscode/refs/heads/main/release/docs/scopetooltip.gif)\n\n### Scope errors\n\n![Scope ](https://raw.githubusercontent.com/MillenniumDawn/cwtools-vscode/refs/heads/main/release/docs/scopeerror.gif)\n\n### Localisation error\n\n![Localisation error](https://raw.githubusercontent.com/MillenniumDawn/cwtools-vscode/refs/heads/main/release/docs/localisationerror.gif)\n\n### Go to definition\n\n![Go to definition](https://raw.githubusercontent.com/MillenniumDawn/cwtools-vscode/refs/heads/main/release/docs/gotodef.gif)\n\n### Find all references\n\n![Find all references](https://raw.githubusercontent.com/MillenniumDawn/cwtools-vscode/refs/heads/main/release/docs/findallrefs.png)\n\n## Theming\n\nThe extension ships its own [TextMate grammars](https://github.com/cwtools/paradox-syntax/tree/master/syntaxes) for all the supported games, so syntax highlighting works out of the box. No second extension to install.\n\nThe grammars are vendored from [cwtools/paradox-syntax](https://github.com/cwtools/paradox-syntax) (see [`tools/sync-paradox-syntax.sh`](tools/sync-paradox-syntax.sh) to refresh them); the `.cwt` rules grammar is owned here. Themes live under [`release/themes/`](release/themes/). Every theme paints the full scope set from both grammars (game scripts and `.cwt` rule files) plus a generic baseline, so coloring is consistent whatever file you're in. Pick one with the Color Theme picker:\n\n* [**Paradox - Syntax**](release/themes/Paradox-Syntax.tmLanguage.json). Default\n  dark scheme modeled on VS Code's Dark+.\n* [**Paradox - Kate**](release/themes/Paradox-Kate.tmLanguage.json) and\n  [**Paradox - Kate Light**](release/themes/Paradox-Kate-Light.tmLanguage.json).\n  Inspired by KDE's\n  [Kate / Breeze](https://invent.kde.org/frameworks/syntax-highlighting)\n  palette.\n* [**Paradox - Nord**](release/themes/Paradox-Nord.tmLanguage.json).\n  [Nord](https://www.nordtheme.com) palette.\n* [**Paradox - High Contrast**](release/themes/Paradox-HighContrast.tmLanguage.json)\n  and [**Paradox - High Contrast Light**](release/themes/Paradox-HighContrast-Light.tmLanguage.json).\n  Accessibility variants, saturated tokens on black/white.\n* [**Paradox - Dimmed**](release/themes/Paradox-Dimmed.tmLanguage.json) and\n  [**Paradox - Quiet Light**](release/themes/Paradox-QuietLight.tmLanguage.json).\n  Re-homed from the upstream\n  [tboby.paradox-syntax](https://marketplace.visualstudio.com/items?itemName=tboby.paradox-syntax)\n  extension.\n\nThe per-game grammars (`stellaris`, `hoi4`, `eu4`, `ck2`) are intermediate. The end state is a single merged grammar with game-specific keywords injected on top, instead of separate per-game files.\n\n## Credits\n\nThe TextMate grammars under [`release/syntaxes/`](release/syntaxes/) are vendored from the [cwtools/paradox-syntax](https://github.com/cwtools/paradox-syntax) extension (Copyright (c) 2018 Thomas Boby, MIT). Original authors and contributors:\n\n* **Thomas Boby** (publisher\n  [`tboby`](https://marketplace.visualstudio.com/publishers/tboby)) and\n  **Dayshine**, with contributions from **Gratak** and others. See the upstream\n  [contributors list](https://github.com/cwtools/paradox-syntax/graphs/contributors)\n  and [commit history](https://github.com/cwtools/paradox-syntax/commits/master).\n\nThe bundled themes draw on the following:\n\n* **Paradox - Dimmed** is by **Gratak** (Adam Przybylski), re-homed from the\n  upstream\n  [Paradox-Dimmed source](https://github.com/cwtools/paradox-syntax/blob/master/themes/Paradox-Dimmed.tmLanguage.json).\n* **Paradox - Quiet Light** is by **UristMcDorf**, re-homed from the upstream\n  [Paradox-QuietLight source](https://github.com/cwtools/paradox-syntax/blob/master/themes/Paradox-QuietLight.tmLanguage.json).\n* **Paradox - Kate** and **Paradox - Kate Light** take their palette from KDE's\n  [Kate / Breeze syntax highlighting](https://invent.kde.org/frameworks/syntax-highlighting)\n  (Kate Editor, [KDE community](https://kde.org)).\n* **Paradox - Nord** uses the [Nord](https://www.nordtheme.com) palette (Arctic\n  Ice Studio, MIT). See the\n  [Nord repo](https://github.com/nordtheme/visual-studio-code).\n* **Paradox - High Contrast** and **Paradox - High Contrast Light** follow\n  [VS Code's built-in Default High Contrast](https://code.visualstudio.com/docs/getstarted/themes#_high-contrast-theme)\n  theme (Microsoft).\n\n`cwtools-md-edition` itself is a fork of\n[cwtools/cwtools-vscode](https://github.com/cwtools/cwtools-vscode) maintained\nby the [Millennium Dawn mod team](https://github.com/MillenniumDawn), and\ndrives a Rust language server from\n[MillenniumDawn/cwtools](https://github.com/MillenniumDawn/cwtools).\n\n## Links\n\n* [vic2-config](https://github.com/cwtools/cwtools-vic2-config)\n* [vic3-config](https://github.com/cwtools/cwtools-vic3-config)\n* [ck2-config](https://github.com/cwtools/cwtools-ck2-config)\n* [eu4-config](https://github.com/cwtools/cwtools-eu4-config)\n* [hoi4-config](https://github.com/cwtools/cwtools-hoi4-config)\n* [stellaris-config](https://github.com/cwtools/cwtools-stellaris-config)\n* [ir-config](https://github.com/cwtools/cwtools-ir-config)\n* [ck3-config](https://github.com/cwtools/cwtools-ck3-config)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmillenniumdawn%2Fcwtools-vscode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmillenniumdawn%2Fcwtools-vscode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmillenniumdawn%2Fcwtools-vscode/lists"}