add nix ftplugin

This commit is contained in:
2026-06-28 15:20:20 +09:00
parent 881b809c32
commit f6fa2f15cc
7 changed files with 117 additions and 20 deletions

View File

@@ -26,6 +26,62 @@ return {
cmd = { vim.fn.stdpath("config") .. "/shell/clangd-direnv.sh" }
})
-- vim.lsp.config("julials", {
-- capabilities = capabilities,
-- cmd = { "julia", "--startup-file=no", "--history-file=no", "-e", "using LanguageServer; runserver()" }
-- })
local cmd = {
'julia',
'--startup-file=no',
'--history-file=no',
'-e',
[[
# Load LanguageServer.jl: attempt to load from ~/.julia/environments/nvim-lspconfig
# with the regular load path as a fallback
ls_install_path = joinpath(
get(DEPOT_PATH, 1, joinpath(homedir(), ".julia")),
"environments", "nvim-lspconfig"
)
pushfirst!(LOAD_PATH, ls_install_path)
using LanguageServer
popfirst!(LOAD_PATH)
depot_path = get(ENV, "JULIA_DEPOT_PATH", "")
project_path = let
dirname(something(
## 1. Finds an explicitly set project (JULIA_PROJECT)
Base.load_path_expand((
p = get(ENV, "JULIA_PROJECT", nothing);
p === nothing ? nothing : isempty(p) ? nothing : p
)),
## 2. Look for a Project.toml file in the current working directory,
## or parent directories, with $HOME as an upper boundary
Base.current_project(),
## 3. First entry in the load path
get(Base.load_path(), 1, nothing),
## 4. Fallback to default global environment,
## this is more or less unreachable
Base.load_path_expand("@v#.#"),
))
end
@info "Running language server" VERSION pwd() project_path depot_path
server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path)
server.runlinter = true
run(server)
]],
}
vim.lsp.config("julials", {
capabilities = capabilities,
cmd = cmd,
root_dir = function(bufnr, on_dir)
local fname = vim.api.nvim_buf_get_name(bufnr)
local root = vim.fs.root(fname, { "Project.toml", "JuliaProject.toml" })
on_dir(root or vim.fn.getcwd())
end,
})
vim.lsp.enable("hls")
vim.lsp.enable("julials")
end,
}