Language server integration for NimbyScript in Neovim.
- Neovim 0.10+ (uses
vim.systemfor async operations) curlavailable in PATH (for auto-downloading the LSP binary)- nvim-treesitter (optional, for syntax highlighting)
The LSP binary is automatically downloaded from GitHub releases on first use.
{
'supermanifolds/nimby_lsp',
config = function()
require('nimbyscript').setup({
-- Optional: specify path to LSP binary
-- cmd = '/path/to/nimbyscript-lsp',
})
end,
ft = { 'nimbyscript' },
}use {
'supermanifolds/nimby_lsp',
config = function()
require('nimbyscript').setup()
end,
}- Clone the repository
- Add the
editors/neovimdirectory to your Neovim runtimepath - Add to your
init.lua:
require('nimbyscript').setup()require('nimbyscript').setup({
-- Path to LSP binary (auto-downloads from GitHub if nil)
cmd = nil,
-- Automatically check for and install updates on startup
auto_update = true,
-- LSP server settings
settings = {},
-- File types to attach
filetypes = { 'nimbyscript' },
-- Root directory markers
root_markers = { '.git', 'mod.txt' },
-- Enable debug logging
debug = false,
-- Enable inlay hints (type annotations and parameter names)
inlay_hints_enabled = true,
-- Enable semantic token highlighting
semantic_tokens_enabled = true,
})To use a locally built or custom binary instead of auto-downloading:
require('nimbyscript').setup({
cmd = '/path/to/nimbyscript-lsp',
})To disable automatic update checks on startup:
require('nimbyscript').setup({
auto_update = false,
})- Syntax highlighting (tree-sitter based)
- Diagnostics (semantic errors and warnings)
- Completions (keywords, types, functions, methods, fields)
- Signature help (function parameter hints)
- Hover information (type info and documentation)
- Document symbols
- Semantic tokens (enhanced highlighting from LSP)
- Filetype icons (nvim-web-devicons and mini.icons)
The tree-sitter parser is automatically registered when you call require('nimbyscript').setup().
To install and enable the parser:
:TSInstall nimbyscriptMake sure highlighting is enabled in your nvim-treesitter config:
require('nvim-treesitter.configs').setup({
highlight = { enable = true },
})-
Check if the binary exists (auto-downloaded or custom path):
# Auto-downloaded location: ls ~/.local/share/nvim/nimbyscript/ # Or check if custom binary is in PATH: which nimbyscript-lsp
-
Check Neovim LSP logs:
:LspLog
-
Enable debug mode:
require('nimbyscript').setup({ debug = true })
- Ensure nvim-treesitter is installed and configured
- Install the parser:
:TSInstall nimbyscript - Check parser status:
:TSInstallInfo