From 19bded245ee0685120ea3d2095c0abcdf5c22692 Mon Sep 17 00:00:00 2001 From: Ian Griffin Date: Tue, 25 Mar 2025 23:13:50 +0800 Subject: migrated to lazy.nvim, cleanup and fixes --- lua/plugins/10_ide.lua | 234 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 lua/plugins/10_ide.lua (limited to 'lua/plugins/10_ide.lua') diff --git a/lua/plugins/10_ide.lua b/lua/plugins/10_ide.lua new file mode 100644 index 0000000..73ae12f --- /dev/null +++ b/lua/plugins/10_ide.lua @@ -0,0 +1,234 @@ +return { + { + 'nvim-treesitter/nvim-treesitter', + build = ':TSUpdate', + event = { "VeryLazy" }, + lazy = vim.fn.argc(-1) == 0, + opts = { + ensure_installed = { + "bash", + "bibtex", + "c", + "cpp", + "css", + "go", + "html", + "http", + "javascript", + "json", + "latex", + "lua", + "python", + "typescript", + "tsx", + "vim", + }, + sync_install = false, + highlight = { + enable = true, + }, + }, + }, + + -- + -- Autocompletion + -- + { + 'ms-jpq/coq.artifacts', + branch = 'artifacts' + }, + { + 'ms-jpq/coq_nvim', + dependencies = { 'ms-jpq/coq.artifacts' }, + branch = 'coq', + build = ':COQdeps', + config = function() + vim.cmd([[autocmd VimEnter * COQnow -s]]) + end + }, + + -- + -- Language Configurations + -- + { 'ap/vim-css-color', lazy = false }, + -- close tags in html languages + { + 'alvan/closetag.vim', + ft = { "html", "vue", "typescriptreact" }, + }, + + { + 'udalov/kotlin-vim', + ft = 'kotlin' + }, + + { 'bellinitte/uxntal.vim', lazy = false }, + + -- + -- Language Server + -- + + -- Show Code Outline/Symbols tree window + { + 'stevearc/aerial.nvim', + opts = { + backends = { 'lsp', 'markdown', 'man' }, + layout = { + min_width = 25 + }, + }, + keys = { + {'e', ':AerialToggle'}, + } + }, + + -- Language Server Installer + { + 'williamboman/mason.nvim', + cmd = { + "Mason", + "MasonInstall", + "MasonUpdate", + + }, + opts = { + ui = { + icons = { + package_installed = "i", + package_pending = "p", + package_uninstalled = "u" + }, + }, + }, + }, + { + 'neovim/nvim-lspconfig', + config = function() + -- disable inline error messages + vim.diagnostic.config({ virtual_text = false }) + end + }, + { + 'williamboman/mason-lspconfig.nvim', + dependencies = { + 'ms-jpq/coq_nvim', + 'nanotee/nvim-lsp-basics', + 'neovim/nvim-lspconfig', + 'stevearc/aerial.nvim', + 'williamboman/mason.nvim', + }, + opts = { + ensure_installed = { + "bashls", + "clangd", + "ast_grep", + "gopls", + "html", + "jsonls", + "lua_ls", + "pyright", + "texlab", + "tsserver" + }, + }, + ft = { + "bash", + "c", + "cpp", + "dart", + "go", + "html", + "javascript", + "javascriptreact", + "json", + "lua", + "python", + "tex", + "typescript", + "typescriptreact", + }, + config = function() + local masonlsp = require 'mason-lspconfig' + --[[ + masonlsp.setup + --]] + masonlsp.setup_handlers { + function(server_name) + require('lspconfig')[server_name].setup(require('coq').lsp_ensure_capabilities { + on_attach = function(client, bufnr) + local basics = require('lsp_basics') + basics.make_lsp_commands(client, bufnr) + basics.make_lsp_mappings(client, bufnr) + end + }) + end + } + end + }, + + -- Show code diagnostics in a separate buffer window + { + 'folke/trouble.nvim', + opts = { + height = 6, + icons = false, + fold_open = "v", + fold_closed = ">", + signs = { + error = "E:", + warning = "W:", + hint = "H:", + information = "I:" + }, + use_diagnostic_signs = false + }, + + cmd = { + "TroubleToggle", + }, + + keys = { + {'t', ':TroubleToggle'}, + } + }, + -- + -- Markdown Live Preview + -- + { + "iamcco/markdown-preview.nvim", + ft = 'markdown', + config = function() + vim.fn["mkdp#util#install"]() + vim.g.mkdp_theme = 'light' + end + }, + + -- + -- Misc + -- + { + "rest-nvim/rest.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + opts = { + -- Open request results in a horizontal split + result_split_horizontal = true, + -- Keep the http file buffer above|left when split horizontal|vertical + result_split_in_place = true, + result = { + show_curl_command = false, + }, + }, + keys = { + {'r', 'RestNvim'}, + {'R', 'RestNvimLast'}, + {'', 'RestNvimPreview'}, + }, + config = function() + -- commands + local ct = require('conftool') + ct.defcmd('RestNvim', 'lua require(\'rest-nvim\').run()') + ct.defcmd('RestNvimPreview', 'lua require(\'rest-nvim\').run(true)') + ct.defcmd('RestNvimLast', 'lua require(\'rest-nvim\').last()') + end, + }, +} -- cgit v1.3