Diff
1diff --git a/dot_config/nvim/lua/lsp.lua b/dot_config/nvim/lua/lsp.lua
2index 6654bd203d9263d2a9015fa921159a4e94f0772a..190ed13da36a7b52eab1d7dff5ea1b9c3cb82958 100644
3--- a/dot_config/nvim/lua/lsp.lua
4+++ b/dot_config/nvim/lua/lsp.lua
5@@ -14,9 +14,13 @@ lsp_zero.on_attach(function(_, bufnr)
6 vim.keymap.set("n", "<leader>vc", vim.lsp.buf.code_action, opts)
7 vim.keymap.set("n", "<leader>vr", vim.lsp.buf.rename, opts)
8 vim.keymap.set("n", "<leader>vh", vim.lsp.buf.hover, opts)
9- vim.keymap.set("n", "<leader>en", vim.diagnostic.goto_next, opts)
10- vim.keymap.set("n", "<leader>ep", vim.diagnostic.goto_prev, opts)
11- vim.keymap.set("n", "<leader>ei", vim.diagnostic.open_float, opts)
12+ vim.keymap.set("n", "<leader>en", function()
13+ vim.diagnostic.jump({ count = 1 })
14+ end, opts)
15+ vim.keymap.set("n", "<leader>ep", function()
16+ vim.diagnostic.jump({ count = -1 })
17+ end, opts)
18+ -- vim.keymap.set("n", "<leader>ei", vim.diagnostic.open_float, opts)
19 vim.keymap.set("i", "<C-h>", vim.lsp.buf.signature_help, opts)
20
21 vim.keymap.set("n", "gr", function()
22@@ -40,20 +44,22 @@ lsp_zero.on_attach(function(_, bufnr)
23 end, opts)
24 end)
25
26-lsp_zero.format_on_save({
27- format_opts = {
28- async = true,
29- timeout_ms = 10000,
30+require("conform").setup({
31+ format_on_save = {
32+ timeout_ms = 2000,
33+ lsp_format = "fallback",
34 },
35- servers = {
36- ["bashls"] = { "sh" },
37- ["efm"] = { "javascript", "typescript", "lua" },
38- ["gopls"] = { "go" },
39- ["jsonls"] = { "json" },
40- ["basedpyright"] = { "python" },
41- ["rust_analyzer"] = { "rust" },
42- ["terraformls"] = { "terraform" },
43- ["yamlls"] = { "yaml" },
44+ formatters_by_ft = {
45+ lua = { "stylua", "efm" },
46+ markdown = { "markdownlint" },
47+ terraform = { "tflint" },
48+ json = { "jsonlint", "prettierd" },
49+ javascript = { "efm" },
50+ typescript = { "efm" },
51+ svelte = { "prettierd" },
52+ go = { "golangci_lint_ls", "golangci-lint" },
53+ html = { "htmlbeautifier", "htmlhint" },
54+ tmpl = { "htmlbeautifier", "htmlhint" },
55 },
56 })
57
58@@ -70,6 +76,9 @@ lspconfig.golangci_lint_ls.setup({
59 ".golangci.json",
60 ".git"
61 ),
62+ init_options = {
63+ command = { "golangci-lint", "run", "--output.json.path=stdout", "--show-stats=false" },
64+ },
65 })
66 lspconfig.gopls.setup({
67 settings = {
68@@ -176,6 +185,9 @@ lspconfig.zls.setup({})
69 -- Customize keymaps
70 local cmp = require("cmp")
71 cmp.setup({
72+ sources = {
73+ { name = "nvim_lsp" },
74+ },
75 mapping = cmp.mapping.preset.insert({
76 -- `Enter` key to confirm completion
77 ["<CR>"] = cmp.mapping.confirm({ select = false }),
78diff --git a/dot_config/nvim/lua/mappings.lua b/dot_config/nvim/lua/mappings.lua
79index 6b42e10dce32dd0ddfb87469008d3eb4e1684d99..71e413789119df019219a0dceb939067969792f1 100644
80--- a/dot_config/nvim/lua/mappings.lua
81+++ b/dot_config/nvim/lua/mappings.lua
82@@ -33,11 +33,11 @@ vim.keymap.set("n", "U", vim.cmd.redo, opts)
83 -- File operation maps
84 vim.keymap.set("n", "<leader>fd", function()
85 if vim.inspect(vim.lsp.get_clients()) then
86- vim.lsp.buf.format()
87+ require("conform").format()
88 else
89 vim.cmd.normal("jzgg=G`z")
90 end
91-end)
92+end, opts)
93 vim.keymap.set("n", "<leader>fs", vim.cmd.w, opts)
94 vim.keymap.set("n", "<leader>fS", vim.cmd.SudaWrite, opts)
95 vim.keymap.set("n", "<leader>W", vim.cmd.SudaWrite, opts)
96@@ -101,3 +101,5 @@ vim.keymap.set("n", "<leader>rg", function()
97 end, opts)
98 vim.keymap.set("n", "<leader>fb", telescope.buffers, opts)
99 vim.keymap.set("n", "<leader>fh", telescope.help_tags, opts)
100+vim.keymap.set("n", "<leader>fp", telescope.builtin, opts)
101+vim.keymap.set("n", "<leader>ei", telescope.diagnostics, opts)
102diff --git a/dot_config/nvim/lua/plugins/lsp.lua b/dot_config/nvim/lua/plugins/lsp.lua
103index 43c6fb6763a06afcfbd9bcd59e86d8d30d0194f8..7afefc5696a13293feeb0b18d1d3bdfb3578ea7a 100644
104--- a/dot_config/nvim/lua/plugins/lsp.lua
105+++ b/dot_config/nvim/lua/plugins/lsp.lua
106@@ -1,8 +1,8 @@
107 return {
108 { "williamboman/mason.nvim" },
109 { "williamboman/mason-lspconfig.nvim" },
110-
111- { "VonHeikemen/lsp-zero.nvim", branch = "v3.x" },
112+ { "stevearc/conform.nvim" },
113+ { "VonHeikemen/lsp-zero.nvim", branch = "v4.x" },
114 { "neovim/nvim-lspconfig" },
115 { "hrsh7th/cmp-nvim-lsp" },
116 { "hrsh7th/nvim-cmp" },
117@@ -14,13 +14,12 @@ return {
118 "ray-x/guihua.lua",
119 "neovim/nvim-lspconfig",
120 "nvim-treesitter/nvim-treesitter",
121- "theHamsta/nvim-dap-virtual-text",
122 },
123 config = function()
124 require("go").setup()
125 end,
126 event = { "CmdlineEnter" },
127 ft = { "go", "gomod" },
128- build = ":lua require('go.install').update_all_sync()",
129+ build = ':lua require("go.install").update_all_sync()',
130 },
131 }
132diff --git a/dot_config/nvim/lua/sets.lua b/dot_config/nvim/lua/sets.lua
133index 2a817e292c97e32b84a4dfecafc52b025d1b63c0..a9c30eba7ef7e608f15bbb88a70ee7cc95b05cf7 100644
134--- a/dot_config/nvim/lua/sets.lua
135+++ b/dot_config/nvim/lua/sets.lua
136@@ -36,3 +36,5 @@ vim.opt.mousescroll = "ver:1,hor:1"
137 vim.opt.ignorecase = true
138 vim.opt.smartcase = true
139 vim.opt.shell = "/usr/bin/zsh"
140+
141+vim.diagnostic.config({ virtual_text = true })