From b3f19fede4899a19e6976f6f4f190d0aeabe7e24 Mon Sep 17 00:00:00 2001 From: Pratik Tripathy Date: Wed, 22 Oct 2025 20:23:25 +0530 Subject: [PATCH] feat(neovim): AWK LSP with required workarounds - Disable lspsaga -> symbol_in_winbar for awk files --- common/.config/nvim/init.lua | 11 +++++------ common/.config/nvim/lsp/awk_ls.lua | 3 +++ common/.config/nvim/lua/config/autocmd.lua | 2 +- common/.config/nvim/lua/core/lsp.lua | 1 + common/.config/nvim/lua/plugins/code-generic.lua | 7 ++++++- 5 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 common/.config/nvim/lsp/awk_ls.lua diff --git a/common/.config/nvim/init.lua b/common/.config/nvim/init.lua index e5fc79d..4e9af84 100644 --- a/common/.config/nvim/init.lua +++ b/common/.config/nvim/init.lua @@ -16,13 +16,12 @@ require("config.autocmd") -- NOTE: External Tools needed for this Nvim config to work -- jsregexp -- rust-analyzer, rustc, cargo (rustacean) --- OS Installs: Use ../../../scripts/install.sh +-- OS Installs: -- general: curl, gzip, unzip, git, fd-find, ripgrep, fzf, tree-sitter -- tools: ImageMagick, xclip, xsel, ghostscript --- lsp: codespell, nodejs-bash-language-server, hadolint, lua, luajit, shellcheck, shfmt, trivy, pylint, stylua +-- lsp: ../../../scripts/package-list-os -- Brew: -- tools: lazygit --- lsp: dockerfile-language-server, markdown-toc, markdownlint-cli, marksman, prettier, prettierd, python-lsp-server, --- taplo, typescript-language-server, vue-language-server, yaml-language-server, yamlfmt --- MasonInstallAll to install the rest (./lua/config/autocmd.lua) --- codelldb, css-lsp, docker-compose-language-service, html-lsp, json-lsp, sqlls +-- lsp: ../../../scripts/package-list-brew +-- MasonInstallAll to install the rest: +-- (./lua/config/autocmd.lua) diff --git a/common/.config/nvim/lsp/awk_ls.lua b/common/.config/nvim/lsp/awk_ls.lua new file mode 100644 index 0000000..b9ef6cc --- /dev/null +++ b/common/.config/nvim/lsp/awk_ls.lua @@ -0,0 +1,3 @@ +return { + filetypes = { "awk" }, +} diff --git a/common/.config/nvim/lua/config/autocmd.lua b/common/.config/nvim/lua/config/autocmd.lua index ed3c736..c178bd3 100644 --- a/common/.config/nvim/lua/config/autocmd.lua +++ b/common/.config/nvim/lua/config/autocmd.lua @@ -28,5 +28,5 @@ vim.api.nvim_create_autocmd("TextYankPost", { -- New command: MasonInstallAll vim.api.nvim_create_user_command("MasonInstallAll", function() - vim.cmd("MasonInstall codelldb css-lsp docker-compose-language-service html-lsp json-lsp sqlls") + vim.cmd("MasonInstall awk-language-server codelldb css-lsp docker-compose-language-service html-lsp json-lsp sqlls") end, {}) diff --git a/common/.config/nvim/lua/core/lsp.lua b/common/.config/nvim/lua/core/lsp.lua index 24543f3..859c5a9 100644 --- a/common/.config/nvim/lua/core/lsp.lua +++ b/common/.config/nvim/lua/core/lsp.lua @@ -6,6 +6,7 @@ -- Step 4: Return a lua table containing required lsp config in it -- NOTE: Only LSPs here, NOT linters or formatter vim.lsp.enable({ + "awk_ls", "basedpyright", "bashls", "cssls", diff --git a/common/.config/nvim/lua/plugins/code-generic.lua b/common/.config/nvim/lua/plugins/code-generic.lua index 440dd8d..f2c8c71 100644 --- a/common/.config/nvim/lua/plugins/code-generic.lua +++ b/common/.config/nvim/lua/plugins/code-generic.lua @@ -111,11 +111,13 @@ return { { "nvimdev/lspsaga.nvim", + event = { "FileType" }, dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons", }, config = function() + local disabled_filetypes = { "awk" } require("lspsaga").setup({ ui = { kind = require("config.util").icons.kind_lspsaga, @@ -128,7 +130,10 @@ return { sign = true, priority = 100, }, - symbol_in_winbar = { enable = true, hide_keyword = true }, + symbol_in_winbar = { + enable = not vim.tbl_contains(disabled_filetypes, vim.bo.filetype), + hide_keyword = true, + }, lightbulb = { virtual_text = false }, outline = { auto_preview = false }, })