From 1a1b2d2ac8711ca21d81885b15838eeae497e5a3 Mon Sep 17 00:00:00 2001 From: Hau Nguyen Date: Fri, 5 Jul 2024 01:10:46 +0700 Subject: [PATCH] config(nvim): replace lsp syntax with treesitter See https://github.com/neovim/nvim-lspconfig/issues/2542 --- data/newsboat/urls | 2 +- data/nvim/init.lua | 69 ++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 3 deletions(-) diff --git a/data/newsboat/urls b/data/newsboat/urls index be278f5..78583bc 100644 --- a/data/newsboat/urls +++ b/data/newsboat/urls @@ -23,6 +23,7 @@ https://kbd.news/rss.php https://go.dev/blog/feed.atom https://lwn.net/headlines/rss https://github.blog/tag/git/atom +https://golangweekly.com/rss/ https://lobste.rs/t/cryptography,design,go,linux,mac.rss "~lobste.rs" http://antirez.com/rss @@ -38,4 +39,3 @@ https://michael.stapelberg.ch/feed.xml https://mitchellh.com/feed.xml https://research.swtch.com/feed.atom https://stephango.com/feed.xml -https://xeiaso.net/blog.rss diff --git a/data/nvim/init.lua b/data/nvim/init.lua index dc65009..5ab7bf2 100644 --- a/data/nvim/init.lua +++ b/data/nvim/init.lua @@ -170,6 +170,9 @@ require("lazy").setup({ }, } end, + integrations = { + treesitter_context = false, + }, }) vim.cmd("colorscheme catppuccin") @@ -457,6 +460,50 @@ require("lazy").setup({ end, }, + -- https://github.com/nvim-treesitter/nvim-treesitter + { + "nvim-treesitter/nvim-treesitter", + build = { + ":TSUpdate", + }, + config = function() + require("nvim-treesitter.configs").setup({ + ensure_installed = { + "bash", + "go", + "lua", + "markdown", + "markdown_inline", + "proto", + "python", + "vim", + "vimdoc", + }, + highlight = { + enabled = true, + disable = function(lang, bufnr) + -- Skip big files with many lines + return vim.api.nvim_buf_line_count(bufnr) > 10000 + end, + }, + }) + end, + }, + + -- https://github.com/nvim-treesitter/nvim-treesitter-context + { + "nvim-treesitter/nvim-treesitter-context", + dependencies = { + "nvim-treesitter/nvim-treesitter", + }, + config = function() + require("treesitter-context").setup({ + enable = true, + max_lines = 2, + }) + end, + }, + -- https://github.com/neovim/nvim-lspconfig { "neovim/nvim-lspconfig", @@ -481,8 +528,14 @@ require("lazy").setup({ -- https://github.com/golang/tools/blob/master/gopls/doc/settings.md -- https://github.com/golang/tools/blob/master/gopls/doc/inlayHints.md -- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#gopls + -- https://github.com/neovim/nvim-lspconfig/issues/2542 lspconfig.gopls.setup({ capabilities = capabilities, + on_init = function(client, initialization_result) + if client.server_capabilities then + client.server_capabilities.semanticTokensProvider = nil + end + end, on_attach = function(client, bufnr) vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) end, @@ -498,12 +551,24 @@ require("lazy").setup({ -- Python -- https://github.com/astral-sh/ruff/blob/main/crates/ruff_server/docs/setup/NEOVIM.md -- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#ruff - lspconfig.ruff.setup({}) + lspconfig.ruff.setup({ + on_init = function(client, initialization_result) + if client.server_capabilities then + client.server_capabilities.semanticTokensProvider = nil + end + end, + }) -- Markdown -- https://github.com/artempyanykh/marksman -- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#marksman - lspconfig.marksman.setup({}) + lspconfig.marksman.setup({ + on_init = function(client, initialization_result) + if client.server_capabilities then + client.server_capabilities.semanticTokensProvider = nil + end + end, + }) -- General vim.keymap.set("n", "e", vim.diagnostic.open_float)