WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 0a284ca

Browse files
author
Dale
committed
support nvim 0.11.5
1 parent 2201543 commit 0a284ca

File tree

3 files changed

+111
-40
lines changed

3 files changed

+111
-40
lines changed
Lines changed: 102 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,130 @@
11
-- nvim-lspconfig allows convenient configuration of LSP clients
2-
return {
3-
{
2+
3+
-- nvim 0.11 changed the way lspconfig works, so we split the config based on
4+
-- version (hence the duplication)
5+
local post_v011 = vim.version().minor >= 11
6+
7+
if post_v011 then
8+
return {
49
"neovim/nvim-lspconfig",
5-
cmd = "LspStart",
10+
version = "v2.5",
11+
config = function()
12+
-- Python language server
13+
vim.lsp.config.pyright = {
14+
cmd = { "pyright-langserver", "--stdio" },
15+
filetypes = { "python" },
16+
root_markers = {
17+
"pyproject.toml",
18+
"setup.py",
19+
"setup.cfg",
20+
"requirements.txt",
21+
"Pipfile",
22+
"pyrightconfig.json",
23+
".git",
24+
},
25+
}
26+
27+
-- Bash language server
28+
vim.lsp.config.bashls = {
29+
cmd = { "bash-language-server", "start" },
30+
filetypes = { "sh", "bash" },
31+
root_markers = { ".git" },
32+
}
33+
34+
-- R language server
35+
vim.lsp.config.r_language_server = {
36+
cmd = { "R", "--slave", "-e", "languageserver::run()" },
37+
filetypes = { "r", "rmd" },
38+
root_markers = { ".git", "DESCRIPTION" },
39+
}
40+
41+
-- Lua language server
42+
vim.lsp.config.lua_ls = {
43+
cmd = { "lua-language-server" },
44+
filetypes = { "lua" },
45+
root_markers = { ".luarc.json", ".luarc.jsonc", ".git" },
46+
settings = {
47+
Lua = {
48+
runtime = { version = "LuaJIT" },
49+
workspace = {
50+
library = { vim.env.VIMRUNTIME },
51+
},
52+
},
53+
},
54+
}
55+
vim.diagnostic.config({ virtual_text = true })
56+
57+
-- LSP keymaps
58+
vim.api.nvim_create_autocmd("LspAttach", {
59+
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
60+
callback = function(ev)
61+
vim.keymap.set("n", "<leader>cgd", vim.lsp.buf.definition, { buffer = ev.buf, desc = "Goto definition" })
62+
vim.keymap.set("n", "<leader>cK", vim.lsp.buf.hover, { buffer = ev.buf, desc = "Hover help" })
63+
vim.keymap.set("n", "<leader>crn", vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" })
64+
vim.keymap.set("n", "<leader>cgr", vim.lsp.buf.references, { buffer = ev.buf, desc = "Goto references" })
65+
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code action" })
66+
end,
67+
})
68+
end,
69+
keys = {
70+
{ "<leader>cl", "<cmd>LspStart<cr>", desc = "Start LSP" },
71+
{ "<leader>ce", vim.diagnostic.open_float, desc = "Open diagnostics/errors" },
72+
},
73+
}
74+
else
75+
return {
76+
"neovim/nvim-lspconfig",
77+
version = "v2.5",
678
init = function()
779
local lspconfig = require("lspconfig")
880

9-
-- Below, autostart = false means that you need to explicity call :LspStart (<leader>cl)
81+
-- below, autostart = false means that you need to explicity call :lspstart (<leader>cl)
1082
--
1183
-- ----------------------------------------------------------------------
12-
-- CONFIGURE ADDITIONAL LANGUAGE SERVERS HERE
84+
-- configure additional language servers here
1385
--
14-
-- pyright is the language server for Python
86+
-- pyright is the language server for python
1587
lspconfig.pyright.setup({ autostart = false })
1688

1789
lspconfig.bashls.setup({ autostart = false })
1890

19-
-- language server for R
91+
-- language server for r
2092
lspconfig.r_language_server.setup({ autostart = false })
2193

22-
-- Language server for Lua. These are the recommended options
23-
-- when mainly using Lua for Neovim
94+
-- language server for lua. these are the recommended options
95+
-- when mainly using lua for neovim
2496
lspconfig.lua_ls.setup({
25-
autostart = false,
26-
on_init = function(client)
27-
local path = client.workspace_folders[1].name
28-
if not vim.loop.fs_stat(path .. "/.luarc.json") and not vim.loop.fs_stat(path .. "/.luarc.jsonc") then
29-
client.config.settings = vim.tbl_deep_extend("force", client.config.settings, {
30-
Lua = {
31-
runtime = { version = "LuaJIT" },
32-
workspace = {
33-
checkThirdParty = false,
34-
library = {
35-
vim.env.VIMRUNTIME,
36-
},
37-
},
38-
},
39-
})
40-
41-
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings })
42-
end
43-
end,
97+
settings = {
98+
Lua = {
99+
runtime = {
100+
version = "LuaJIT",
101+
},
102+
workspace = {
103+
library = { vim.env.VIMRUNTIME },
104+
},
105+
},
106+
},
44107
})
45108

46-
-- Use LspAttach autocommand to only map the following keys after
109+
-- use lspattach autocommand to only map the following keys after
47110
-- the language server attaches to the current buffer
48-
vim.api.nvim_create_autocmd("LspAttach", {
49-
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
111+
vim.api.nvim_create_autocmd("lspattach", {
112+
group = vim.api.nvim_create_augroup("userlspconfig", {}),
50113
callback = function(ev)
51-
vim.keymap.set("n", "<leader>cgd", vim.lsp.buf.definition, { buffer = ev.buf, desc = "Goto definition" })
52-
vim.keymap.set("n", "<leader>cK", vim.lsp.buf.hover, { buffer = ev.buf, desc = "Hover help" })
114+
vim.keymap.set("n", "<leader>cgd", vim.lsp.buf.definition, { buffer = ev.buf, desc = "Goto Definition" })
115+
vim.keymap.set("n", "<leader>ck", vim.lsp.buf.hover, { buffer = ev.buf, desc = "Hover help" })
53116
vim.keymap.set("n", "<leader>crn", vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" })
54-
vim.keymap.set("n", "<leader>cgr", vim.lsp.buf.references, { buffer = ev.buf, desc = "Goto references" })
55-
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code action" })
117+
vim.keymap.set("n", "<leader>cgr", vim.lsp.buf.references, { buffer = ev.buf, desc = "Goto References" })
118+
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Code Action" })
56119
end,
57120
})
58121
end,
59122
keys = {
60-
-- Because autostart=false above, need to manually start the language server.
61-
{ "<leader>cl", "<cmd>LspStart<CR>", desc = "Start LSP" },
123+
-- because autostart=false above, need to manually start the language server.
124+
{ "<leader>cl", "<cmd>LspStart<cr>", desc = "Start LSP" },
62125
{ "<leader>ce", vim.diagnostic.open_float, desc = "Open diagnostics/errors" },
63126
{ "]d", vim.diagnostic.goto_next, desc = "Next diagnostic/error" },
64127
{ "[d", vim.diagnostic.goto_prev, desc = "Prev diagnostic/error" },
65128
},
66-
},
67-
}
129+
}
130+
end

docs/changelog.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
Changelog
22
=========
33

4+
2025-11-21
5+
----------
6+
7+
**vim**
8+
9+
- Update installed nvim to v0.11.5, and update LSP configs accordingly. This
10+
LSP config is backwards-compatible with the previously-used version, v0.10.
11+
412
2025-10-27
513
----------
614

setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ set -eo pipefail
2222
# Change tool versions here
2323
VISIDATA_VERSION=2.11
2424
HUB_VERSION=2.14.2
25-
NVIM_VERSION=0.10.4
25+
NVIM_VERSION=0.11.5
2626
RG_VERSION=13.0.0
2727
BAT_VERSION=0.19.0
2828
JQ_VERSION=1.6

0 commit comments

Comments
 (0)