nimsight
LSP implementation for Nim based on `nim check`
Summary
| Latest Version | Unknown |
|---|---|
| License | MIT |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-22 05:29 |
Tags
Installation
nimble install nimsight
choosenim install nimsight
git clone https://github.com/ire4ever1190/nimsight
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| nimsight | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://github.com/ire4ever1190/nimsight |
|---|---|
| Homepage | https://github.com/ire4ever1190/nimsight |
| Registry Source | nimble_official |
README
Nim Sight 👀
Get insight with NimSight
Nim language server based around nim check
I first started programming Nim using micro which just had a linter for Nim which I found helpful enough so I wanted that same experiences in my other editors. Doesn't support auto-complete and likely never will unless the --suggest option starts working
Tested with Kate and helix, semi tested with NeoVim (I run the test suite with it, but personally dont use it)
Features
This is the list of features that are supported/will eventually be supported
- [x] Show errors/warnings
- [x] Show outline of document
- [x] Basic fixes for some errors
- [x] Nimble and nimscript files
- [ ] Go-to symbol definition (The code is there, but it basically never works)
- [ ] Find usages
- [ ] Rename symbol
- [ ] Code lens (Nimble tasks, run tests)
Installation
Installation is supported via nimble install nimsight or via the flake github:ire4ever1190/nimsight
Usage
Kate
Add this into the list of LSP servers
{
"nim": {
"command": ["nimsight"],
"path": ["%{ENV:HOME}/.nimble/bin", "%{ENV:USERPROFILE}/.nimble/bin"],
"rootIndicationFilePatterns": ["*.nimble", "config.nims"],
"url": "https://github.com/ire4ever1190/nimsight",
"highlightingModeRegex": "Nim",
"initializationOptions": {
"nimBinary": "/path/to/nim"
}
}
}
Helix
Add this into your languages.toml file
[[language]]
language-servers = ["nimsight"]
name = "nim"
[language-server.nimsight]
args = []
command = "nimsight"
[language-server.nimsight.config.nimBinary]
path = "/path/to/nim"
Configuration
The following configuration options can be passed via initializationOptions:
nimBinary: Path to the Nim binary to use (defaults tonimornim.exe)nimbleBinary: Path to the Nimble binary to use (defaults tonimbleornimble.exe)
Developing
Code is broken into two main sections
src/nimsight.nim: Main entry point, registers all the handlerssrc/nimsight/: Contains code for Nim related stuffsrc/nimsight/sdk: Contains an SDK for interacting with language servers. Can be used outside of this
When running tests, make sure to build nimsight first e.g.
nimble build
nim r tests/testFull.nim