{"id":27721084,"url":"https://github.com/idleberg/vscode-nsis","last_synced_at":"2026-05-17T08:11:17.356Z","repository":{"id":37502628,"uuid":"65022304","full_name":"idleberg/vscode-nsis","owner":"idleberg","description":"Language syntax, IntelliSense and build system for Nullsoft Scriptable Install System (NSIS)","archived":false,"fork":false,"pushed_at":"2026-04-14T11:16:20.000Z","size":4758,"stargazers_count":83,"open_issues_count":0,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-14T13:21:26.763Z","etag":null,"topics":["build-tool","intellisense","language-syntax","nsis","nsis-language","nsl","nsl-assembler","transpiler","visual-studio-code","visual-studio-code-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=idleberg.nsis","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/idleberg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"idleberg"}},"created_at":"2016-08-05T13:52:58.000Z","updated_at":"2026-04-14T11:16:24.000Z","dependencies_parsed_at":"2023-11-06T05:32:47.075Z","dependency_job_id":"c0a5dd55-e6ad-405f-8eb2-5ff578fca51e","html_url":"https://github.com/idleberg/vscode-nsis","commit_stats":null,"previous_names":[],"tags_count":235,"template":false,"template_full_name":null,"purl":"pkg:github/idleberg/vscode-nsis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idleberg%2Fvscode-nsis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idleberg%2Fvscode-nsis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idleberg%2Fvscode-nsis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idleberg%2Fvscode-nsis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/idleberg","download_url":"https://codeload.github.com/idleberg/vscode-nsis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idleberg%2Fvscode-nsis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33131461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T06:27:06.342Z","status":"ssl_error","status_checked_at":"2026-05-17T06:26:59.432Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["build-tool","intellisense","language-syntax","nsis","nsis-language","nsl","nsl-assembler","transpiler","visual-studio-code","visual-studio-code-extension"],"created_at":"2025-04-27T10:01:23.265Z","updated_at":"2026-05-17T08:11:17.343Z","avatar_url":"https://github.com/idleberg.png","language":"TypeScript","funding_links":["https://buymeacoffee.com/idleberg"],"categories":[],"sub_categories":[],"readme":"# vscode-nsis\n\n[![License](https://img.shields.io/badge/LICENSE-MIT-blue?style=for-the-badge)](LICENSE)\n[![Version](https://img.shields.io/github/v/release/idleberg/vscode-nsis?style=for-the-badge)](https://github.com/idleberg/vscode-nsis/releases)\n[![Build](https://img.shields.io/github/actions/workflow/status/idleberg/vscode-nsis/default.yml?style=for-the-badge)](https://github.com/idleberg/vscode-nsis/actions)\n\nLanguage syntax, snippets, formatter and build system for Nullsoft Scriptable Install\nSystem (NSIS).\n\n![Screenshot](https://raw.githubusercontent.com/idleberg/vscode-nsis/main/resources/screenshot.png)\n\n_Screenshot of NSIS in Visual Studio Code with\n[Hopscotch](https://marketplace.visualstudio.com/items?itemName=idleberg.hopscotch)\ntheme_\n\n## Features\n\n- Language syntax for NSIS and NSIS Language Files\n- Snippets for core NSIS commands, variables and predefines\n- Snippets for core plug-ins:\n  - AdvSplash\n  - Banner\n  - BgImage\n  - Dialer\n  - InstallOptions\n  - LangDLL\n  - Math\n  - nsDialogs\n  - nsExec\n  - NSISdl\n  - Splash\n  - StartMenu\n  - System\n  - UserInfo\n  - VPatch\n- Snippets for core libraries (“Useful Headers”):\n  - FileFunc\n  - LogicLib\n  - Memento\n  - Modern UI\n  - MultiUser\n  - Sections\n  - StrFunc\n  - WinMessages\n  - WinVer\n  - WordFunc\n  - x64\n- NSIS Diagnostics\n- [Drunken NSIS](https://github.com/idleberg/vscode-nsis#drunken-nsis)\n- [Formatting](https://github.com/idleberg/vscode-nsis#formatting)\n- [Build Tools](https://github.com/idleberg/vscode-nsis#building)\n- [Environment Variables](https://github.com/idleberg/vscode-nsis#environment-variables)\n\nYou can further extend NSIS support with snippets for\n[third-party plug-ins](https://github.com/idleberg/vscode-nsis-plugins).\n\n## Installation\n\n### Extension Marketplace\n\nLaunch Quick Open, paste the following command, and press \u003ckbd\u003eEnter\u003c/kbd\u003e\n\n`ext install idleberg.nsis`\n\n### CLI\n\nWith [shell commands](https://code.visualstudio.com/docs/editor/command-line)\ninstalled, you can use the following command to install the extension:\n\n`$ code --install-extension idleberg.nsis`\n\n### Packaged Extension\n\nDownload the packaged extension from the the\n[release page](https://github.com/idleberg/vscode-nsis/releases) and install it\nfrom the command-line:\n\n```bash\n$ code --install-extension path/to/nsis-*.vsix\n```\n\nAlternatively, you can download the packaged extension from the\n[Open VSX Registry](https://open-vsx.org/) or install it using the\n[`ovsx`](https://www.npmjs.com/package/ovsx) command-line tool:\n\n```bash\n$ ovsx get idleberg.nsis\n```\n\n### Clone Repository\n\nChange to your Visual Studio Code extensions directory:\n\n**Windows**\n\n```powershell\n# Powershell\ncd $Env:USERPROFILE\\.vscode\\extensions\n```\n\n```cmd\n:: Command Prompt\n$ cd %USERPROFILE%\\.vscode\\extensions\n```\n\n**Linux \u0026 macOS**\n\n```bash\n$ cd ~/.vscode/extensions/\n```\n\nClone repository as `idleberg.nsis`:\n\n```bash\n$ git clone https://github.com/idleberg/vscode-nsis idleberg.nsis\n```\n\nInside the cloned directory, install dependencies using your preferred Node\npackage manager:\n\n```bash\n$ npm install\n```\n\nBuild the source:\n\n```bash\nnpm run build\n```\n\n## Usage\n\n### Snippets\n\nWith most commands, you can specify available options before completion. For\ninstance, rather than completing `RequestExecutionLevel` and then specifying an\noption, you can directly choose `RequestExecutionLevel user` from the completion\nmenu.\n\nTo complete\n[compile time commands](http://nsis.sourceforge.net/Docs/Chapter5.html#),\n[variables](http://nsis.sourceforge.net/Docs/Chapter4.html#varother) or\n[predefines](http://nsis.sourceforge.net/Docs/Chapter5.html#comppredefines),\nmake sure to _omit special characters_ like `!`, `$` and brackets:\n\n- `include` completes to `!include`\n- `INSTDIR` completes to `$INSTDIR`\n- `NSIS_VERSION` completes to `${NSIS_VERSION}`\n\nHowever, you have to type `__LINE__` to complete to `${__LINE__}`.\n\nThere are several special cases for your convenience:\n\n- `MB_OK` completes to `MessageBox MB_OK \"messagebox_text\"`\n- `onInit` completes to a `Function .onInit` block\n- `LogicLib` completes to `!include \"LogicLib.nsh\"`\n\n#### Drunken NSIS\n\nFuzzy syntax completions are available through “Drunken NSIS”, which tries to\niron out some of the inconsistencies in the NSIS language, for instance word\norder.\n\n**Examples:**\n\n- `ReadFile` completes to `FileRead`\n- `INIStrRead` completes to `ReadINIStr`\n- `SetSectionText` completes to `SectionSetText`\n- `SetLog` completes to `LogSet`\n- `FirstFind` completes to `FindFirst`\n- `${LineFind}` completes to `${FindLine}`\n\n### Formatting\n\nScripts can be formatted using the experimental [`@nsis/dent`](https://www.npmjs.com/package/@nsis/dent) package. To do so, run *Format Document* or adjust your settings for auto-formatting.\n\n**Example**\n\n```json\n{\n\t\"[nsis]\": {\n\t\t\"editor.defaultFormatter\": \"idleberg.nsis\",\n\t\t\"editor.formatOnSave\": true\n\t},\n}\n```\n\n### Building\n\nBefore you can build, make sure `makensis` is in your PATH\n[environment variable](http://superuser.com/a/284351/195953). Alternatively, you\ncan specify the path to `makensis` in your\n[user settings](https://code.visualstudio.com/docs/customization/userandworkspace).\n\n#### makensis\n\n**Example:**\n\n```json\n{\n\t\"nsis.compiler.pathToMakensis\": \"C:\\\\Program Files (x86)\\\\NSIS\\\\makensis.exe\"\n}\n```\n\nTo trigger a build, select _NSIS: Save \u0026 Compile”_ from the\n[command-palette](https://code.visualstudio.com/docs/editor/codebasics#_command-palette)\nor use the default keyboard shortcut\n\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eB\u003c/kbd\u003e. The strict option treats warnings\nas errors and can be triggered using\n\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eB\u003c/kbd\u003e.\n\n#### Options\n\nYou can tweak your default settings by editing your\n[user settings](https://code.visualstudio.com/Docs/customization/userandworkspace).\n\n### Task Runner\n\nIf you prefer Visual Studio Code's built-in Task Runner to build scripts, you\ncan create `tasks.json` in the project root using the _NSIS: Create Build Task_\ncommand from the\n[command-palette](https://code.visualstudio.com/docs/editor/codebasics#_command-palette).\n\n\u003e [!NOTE]\n\u003e\n\u003e The created Task Runner will adapt to the\n\u003e [user settings](https://code.visualstudio.com/Docs/customization/userandworkspace)\n\u003e specified in `settings.json`.\n\n### Environment Variables\n\nThis extension supports a variety of ways to provide environment variables such\nas `NSISDIR` or `NSISCONFDIR`. The following precedence applies:\n\n1. `terminal.integrated.shell.*` setting\n2. `.env` files\n3. system-wide environment variables\n\n\u003e [!NOTE]\n\u003e\n\u003e Some operating systems require Visual Studio Code to be launched from terminal\n\u003e in order to access system-wide environment variables.\n\nAdditionally, you can pass special environment variables prefixed with `NSIS_APP_` to your installer script. They will be treated like normal definitions and will be stringified at compile-time.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExample\u003c/strong\u003e\u003c/summary\u003e\n\n```env\n# .env\nNSIS_APP_ENVIRONMENT=development\n```\n\n```nsis\n# installer.nsi\n!if ${NSIS_APP_ENVIRONMENT} == \"development\"\n  DetailPrint \"Valuable Debug Information\"\n!endif\n```\n\n\u003c/details\u003e\n\n### File Encoding\n\nThis extension defaults to UTF-8 with BOM (`utf8bom`) for NSIS files. If you are working with older scripts, you can override the encoding in your workspace settings:\n\n\n**Example**\n\n```jsonc\n{\n\t\"[nsis]\": {\n\t\t\"files.encoding\": \"windows1252\"\n\t}\n}\n```\n\nPer workspace: Add \"files.encoding\": \"windows1252\" to the [nsis] section in your .vscode/settings.json\nPer file: Click the encoding label in the status bar and choose Save with Encoding\n\n## Related\n\n- [node-makensis](https://www.npmjs.com/package/makensis)\n- [vscode-electron-builder](https://marketplace.visualstudio.com/items?itemName=idleberg.electron-builder)\n- [atom-language-nsis](https://atom.io/packages/language-nsis)\n\n## License\n\nIf not otherwise specified (see below), files in this repository fall under\n[The MIT License](https://opensource.org/licenses/MIT).\n\nAn exception is made for files in readable text which contain their own license\ninformation, or files where an accompanying file exists (in the same directory)\nwith a “-license” suffix added to the base-name name of the original file, and\nan extension of txt, html, or similar. For example “tidy” is accompanied by\n“tidy-license.txt”.\n\n[wine]: https://winehq.org\n[makensis]: http://nsis.sourceforge.net/Docs/Chapter3.html#usage\n[ppo]: https://nsis.sourceforge.io/Docs/Chapter3.html#usagereference\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidleberg%2Fvscode-nsis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fidleberg%2Fvscode-nsis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidleberg%2Fvscode-nsis/lists"}