From 39d0ec4cdc46a362c8a89aea806d61b10ee037f7 Mon Sep 17 00:00:00 2001 From: DarkWiiPlayer Date: Mon, 8 Jul 2024 13:29:37 +0200 Subject: [PATCH] Integrate nvim document-highight with LSP attach hook --- vim/lua/lsp/attach.lua | 25 +++++++++++++++++++++++++ vimrc | 2 ++ 2 files changed, 27 insertions(+) diff --git a/vim/lua/lsp/attach.lua b/vim/lua/lsp/attach.lua index 67f7647..0334f46 100644 --- a/vim/lua/lsp/attach.lua +++ b/vim/lua/lsp/attach.lua @@ -46,4 +46,29 @@ return function(_, bufnr) vim.lsp.buf.rename() end end, {nargs = "?"}) + + vim.api.nvim_buf_create_user_command(bufnr, "LspDocumentHighlight", function(args) + local disable = vim.b.document_highlight + arg = args.fargs[1] + if arg then + if string.lower(arg) == "on" then + disable = false + elseif string.lower(arg) == "off" then + disable = true + else + error "Argument must be either 'on' or 'off' or absent" + end + end + if disable then + require("lsp.document_highlight").stop(bufnr) + vim.b.document_highlight = false + else + require("lsp.document_highlight").start(bufnr) + vim.b.document_highlight = true + end + end, {nargs = "?", complete = function(lead) + return vim.fn.filter({ "on", "off" }, function(_, val) + return val:find("^" .. lead) + end) + end}) end diff --git a/vimrc b/vimrc index 799dc08..05ada3b 100644 --- a/vimrc +++ b/vimrc @@ -5,6 +5,8 @@ let &rtp=&rtp.','.expand(':p:h').'/vim/pack/*/start/*' set nocompatible +set updatetime=600 + au VimEnter * TSEnable highlight au VimEnter * TSEnable incremental_selection au VimEnter * TSEnable indent