Skip to content

Commit 08a2a21

Browse files
committed
Re-work Neovim configs
1 parent 59ac5b0 commit 08a2a21

8 files changed

Lines changed: 102 additions & 74 deletions

File tree

config/nvim/lua/lsp/init.lua

Lines changed: 59 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ local servers = {
44
"pyright",
55
"kotlin_language_server",
66
"jsonls",
7+
"yamlls",
78
}
89

910
-- Set up Mason for automatic LSP server installation
@@ -12,9 +13,18 @@ require("mason-lspconfig").setup({
1213
ensure_installed = servers,
1314
})
1415

16+
vim.diagnostic.config({
17+
severity_sort = true,
18+
float = {
19+
border = "rounded",
20+
},
21+
})
22+
23+
local capabilities = require("cmp_nvim_lsp").default_capabilities()
24+
1525
-- Set capabilities for all servers (cmp integration)
1626
vim.lsp.config("*", {
17-
capabilities = require("cmp_nvim_lsp").default_capabilities(),
27+
capabilities = capabilities,
1828
})
1929

2030
-- Load server-specific configurations
@@ -26,20 +36,20 @@ end
2636
vim.lsp.enable(servers)
2737

2838
-- Diagnostic keymaps
29-
vim.keymap.set("n", "<space>e", vim.diagnostic.open_float)
39+
vim.keymap.set("n", "<space>e", vim.diagnostic.open_float, { desc = "Open diagnostic float" })
3040
vim.keymap.set("n", "[d", function()
3141
vim.diagnostic.jump({ count = -1 })
32-
end)
42+
end, { desc = "Previous diagnostic" })
3343
vim.keymap.set("n", "]d", function()
3444
vim.diagnostic.jump({ count = 1 })
35-
end)
36-
vim.keymap.set("n", "<space>q", vim.diagnostic.setloclist)
45+
end, { desc = "Next diagnostic" })
46+
vim.keymap.set("n", "<space>q", vim.diagnostic.setloclist, { desc = "Diagnostic quickfix list" })
3747

3848
-- LSP keymaps (set when a server attaches to a buffer)
3949
vim.api.nvim_create_autocmd("LspAttach", {
4050
callback = function(ev)
4151
local client = vim.lsp.get_client_by_id(ev.data.client_id)
42-
local opts = { buffer = ev.buf }
52+
local opts = { buffer = ev.buf, silent = true }
4353

4454
-- Enable completion triggered by <c-x><c-o>
4555
vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc"
@@ -50,22 +60,52 @@ vim.api.nvim_create_autocmd("LspAttach", {
5060
client.server_capabilities.documentRangeFormattingProvider = false
5161
end
5262

53-
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
54-
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
55-
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
56-
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
57-
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
58-
vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts)
59-
vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts)
63+
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, vim.tbl_extend("force", opts, { desc = "LSP declaration" }))
64+
vim.keymap.set("n", "gd", vim.lsp.buf.definition, vim.tbl_extend("force", opts, { desc = "LSP definition" }))
65+
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "LSP hover" }))
66+
vim.keymap.set(
67+
"n",
68+
"gi",
69+
vim.lsp.buf.implementation,
70+
vim.tbl_extend("force", opts, { desc = "LSP implementation" })
71+
)
72+
vim.keymap.set(
73+
"n",
74+
"<C-k>",
75+
vim.lsp.buf.signature_help,
76+
vim.tbl_extend("force", opts, { desc = "LSP signature help" })
77+
)
78+
vim.keymap.set(
79+
"n",
80+
"<space>wa",
81+
vim.lsp.buf.add_workspace_folder,
82+
vim.tbl_extend("force", opts, { desc = "Add workspace folder" })
83+
)
84+
vim.keymap.set(
85+
"n",
86+
"<space>wr",
87+
vim.lsp.buf.remove_workspace_folder,
88+
vim.tbl_extend("force", opts, { desc = "Remove workspace folder" })
89+
)
6090
vim.keymap.set("n", "<space>wl", function()
6191
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
62-
end, opts)
63-
vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, opts)
64-
vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts)
65-
vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts)
66-
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
92+
end, vim.tbl_extend("force", opts, { desc = "List workspace folders" }))
93+
vim.keymap.set(
94+
"n",
95+
"<space>D",
96+
vim.lsp.buf.type_definition,
97+
vim.tbl_extend("force", opts, { desc = "LSP type definition" })
98+
)
99+
vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "LSP rename" }))
100+
vim.keymap.set(
101+
"n",
102+
"<space>ca",
103+
vim.lsp.buf.code_action,
104+
vim.tbl_extend("force", opts, { desc = "LSP code action" })
105+
)
106+
vim.keymap.set("n", "gr", vim.lsp.buf.references, vim.tbl_extend("force", opts, { desc = "LSP references" }))
67107
vim.keymap.set("n", "<space>f", function()
68108
vim.lsp.buf.format({ async = true })
69-
end, opts)
109+
end, vim.tbl_extend("force", opts, { desc = "Format buffer" }))
70110
end,
71111
})

config/nvim/lua/lsp/servers/lua_ls.lua

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@ vim.lsp.config("lua_ls", {
55
version = "LuaJIT",
66
},
77
diagnostics = {
8-
globals = {},
8+
globals = { "vim" },
9+
},
10+
workspace = {
11+
checkThirdParty = false,
12+
library = vim.api.nvim_get_runtime_file("", true),
13+
},
14+
telemetry = {
15+
enable = false,
916
},
1017
},
1118
},

config/nvim/lua/mappings.lua

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
-- Select the previous selection after indentation
2-
vim.cmd("vnoremap < <gv")
3-
vim.cmd("vnoremap > >gv")
1+
vim.keymap.set("x", "<", "<gv", { desc = "Indent left and keep selection" })
2+
vim.keymap.set("x", ">", ">gv", { desc = "Indent right and keep selection" })
43

5-
-- Ctrl+p to fuzzy find files
6-
vim.cmd("nmap <C-p> :Telescope find_files<cr>")
7-
8-
-- Ctrl+o to launch nerd tree file browser
9-
vim.cmd("nmap <C-o> :NERDTreeToggle<cr>")
4+
vim.keymap.set("n", "<C-p>", "<cmd>Telescope find_files<cr>", { desc = "Find files" })
5+
vim.keymap.set("n", "<C-o>", "<cmd>NERDTreeToggle<cr>", { desc = "Toggle NERDTree" })
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
local ok, nerdtree = pcall(require, "nerdtree")
2-
3-
if not ok then
4-
return
5-
end
6-
7-
nerdtree.setup({})
1+
-- NERDTree does not expose a Lua setup API.

config/nvim/lua/plugins/configs/telescope.lua

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ if not ok then
55
end
66

77
telescope.setup({
8-
picker = {
9-
hidden = false,
10-
},
118
defaults = {
129
vimgrep_arguments = {
1310
"rg",
@@ -25,27 +22,27 @@ telescope.setup({
2522
"--glob=!bazel-out/",
2623
"--glob=!bazel-testlogs/",
2724
},
28-
pickers = {
29-
find_files = {
30-
find_command = {
31-
"fd",
32-
"--type=file",
33-
"--hidden",
34-
"--exclude=.git",
35-
"--exclude=bazel-bin",
36-
"--exclude=bazel-instant-android",
37-
"--exclude=bazel-out",
38-
"--exclude=testlogs",
39-
},
25+
},
26+
pickers = {
27+
find_files = {
28+
find_command = {
29+
"fd",
30+
"--type=file",
31+
"--hidden",
32+
"--exclude=.git",
33+
"--exclude=bazel-bin",
34+
"--exclude=bazel-instant-android",
35+
"--exclude=bazel-out",
36+
"--exclude=testlogs",
4037
},
4138
},
42-
extensions = {
43-
fzf = {
44-
fuzzy = true,
45-
override_generic_sorter = true,
46-
override_file_sorter = true,
47-
case_mode = "smart_case",
48-
},
39+
},
40+
extensions = {
41+
fzf = {
42+
fuzzy = true,
43+
override_generic_sorter = true,
44+
override_file_sorter = true,
45+
case_mode = "smart_case",
4946
},
5047
},
5148
})

config/nvim/lua/plugins/configs/treesitter.lua

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,7 @@ treesitter.setup({
2020
"markdown_inline",
2121
},
2222
sync_install = false,
23-
autotag = {
24-
enable = true,
25-
},
2623
highlight = {
2724
enable = true,
2825
},
29-
rainbow = {
30-
enable = true,
31-
extended_mode = true,
32-
max_file_lines = nil,
33-
},
3426
})

config/nvim/lua/settings.lua

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
vim.cmd("syntax enable")
2-
vim.cmd("filetype plugin indent on")
3-
41
vim.opt.termguicolors = true
52
vim.opt.showcmd = true
63
vim.opt.number = true
@@ -10,5 +7,7 @@ vim.opt.smartindent = true
107
vim.opt.swapfile = false
118
vim.opt.backup = false
129
vim.opt.whichwrap = "<,>,h,l,[,]"
13-
vim.cmd("set ts=2 sts=2 sw=2")
10+
vim.opt.tabstop = 2
11+
vim.opt.softtabstop = 2
12+
vim.opt.shiftwidth = 2
1413
vim.opt.inccommand = "nosplit"

config/nvim/lua/theme.lua

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
require("github-theme").setup({
1+
local ok, github_theme = pcall(require, "github-theme")
2+
3+
if not ok then
4+
return
5+
end
6+
7+
github_theme.setup({
28
options = {
39
styles = {
410
functions = "italic",
@@ -25,11 +31,8 @@ require("github-theme").setup({
2531
groups = {
2632
all = {
2733
htmlTag = { fg = "palette.red", bg = "#282c34", sp = "diag.hint", style = "underline" },
28-
DiagnosticHint = { link = "LspDiagnosticsDefaultHint" },
29-
-- this will remove the highlight groups
30-
TSField = {},
3134
},
3235
},
3336
})
3437

35-
vim.cmd("colorscheme github_dark")
38+
pcall(vim.cmd.colorscheme, "github_dark")

0 commit comments

Comments
 (0)