Package Control

The official Sublime Text package manager.

LSP-nsis

By idleberg
Created July 28, 2026, last updated July 30, 2026.

Links

Versions

0.2.1 (>ST4069) ·
2026-07-30 10:19

More
  • (>ST4069) 0.2.0 ·
    2026-07-29 20:10

  • 0.1.0 ·
    2026-07-29 13:10

LSP-nsis

GitHub License

NSIS support for Sublime Text, via nsis-lsp and the LSP package.

Features

Code actions, completions, compiler diagnostics, document formatting, document symbols, go-to-definition, find references, hover documentation, rename symbol, and signature help.

Diagnostics require the makensis compiler. Without it the server still starts, and everything else works.

Installation

  1. Install LSP and NSIS — the latter provides the source.nsis syntax this package binds to.
  2. Install LSP-nsis.

The language server is downloaded automatically on first use and kept in sync with the version pinned in plugin.py. To use your own build instead, set an absolute path:

// Preferences: LSP-nsis Settings
{
  "server_path": "/usr/local/bin/nsis-lsp",
}

An absolute path matters here: Sublime Text launched from Finder or the Dock inherits a minimal PATH that generally excludes /usr/local/bin, so a bare nsis-lsp may resolve when you launch from a shell and fail when you launch from the Dock.

Configuration

Open the settings via Preferences → Package Settings → LSP → Servers → LSP-nsis, or from the command palette with Preferences: LSP-nsis Settings. Per-project overrides go under settings.LSP.LSP-nsis in a .sublime-project file.

Setting Default Description
diagnostics.preprocess_mode "ppo" Preprocessor mode for makensis: "ppo", "safe_ppo", or null.
diagnostics.enabled_on_save true Refresh diagnostics on save.
formatter.end_of_line null "lf", "crlf", or null to keep the document's own.
formatter.print_width 0 Wrap column; 0 disables wrapping.
formatter.trim_empty_lines true Strip trailing whitespace from empty lines.
formatter.single_quote false Prefer single over double quotes.
makensis.path "" Path to makensis; empty looks it up on PATH.

These are passed as initializationOptions, so changes take effect after restarting the server (LSP: Restart Servers).

License

The MIT License - Feel free to use, modify, and distribute this code.

Results

Packages