return { { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', event = { "VeryLazy" }, lazy = vim.fn.argc(-1) == 0, opts = { ensure_installed = { "bash", "bibtex", "c", "cs", "cpp", "cs", "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', event = { "BufEnter" }, 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 }, { 'nvim-flutter/flutter-tools.nvim', ft = 'dart', dependencies = { 'nvim-lua/plenary.nvim', 'nanotee/nvim-lsp-basics', }, opts = { lsp = { color = { enabled = true, }, on_attach = function(client, bufnr) local basics = require('lsp_basics') basics.make_lsp_commands(client, bufnr) basics.make_lsp_mappings(client, bufnr) end, }, }, }, -- -- Language Server -- -- Show Code Outline/Symbols tree window { 'stevearc/aerial.nvim', opts = { close_on_select = true, -- backends = { 'lsp', 'markdown', 'man' }, layout = { -- default_direction = 'prefer_right', 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 }, --[[{ 'huggingface/llm.nvim', opts = { model = 'qwen2.5-coder:7b', backend = 'ollama', url = 'http://localhost:11434', lsp = { bin_path = vim.api.nvim_call_function("stdpath", { "data" }) .. "/mason/bin/llm-ls", } }, },]]-- { 'mason-org/mason-lspconfig.nvim', dependencies = { 'ms-jpq/coq_nvim', 'nanotee/nvim-lsp-basics', 'neovim/nvim-lspconfig', -- 'huggingface/llm.nvim', 'stevearc/aerial.nvim', 'williamboman/mason.nvim', }, opts = { ensure_installed = { "bashls", "clangd", "gopls", "html", "jsonls", "lua_ls", "pyright", "texlab", "ts_ls" }, }, ft = { "bash", "c", "cpp", "cs", "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 = {}, cmd = { "Trouble", }, keys = { {'t', ':Trouble diagnostics toggle'}, } }, -- -- Markdown Live Preview -- { "iamcco/markdown-preview.nvim", ft = {"markdown"}, -- cmd = { -- "MarkdownPreviewToggle", -- "MarkdownPreview", -- "MarkdownPreviewStop" -- }, config = function() vim.fn["mkdp#util#install"]() vim.g.mkdp_theme = 'light' -- vim.g.mkdp_browser = 'netsurf' end }, -- -- Misc -- { "rest-nvim/rest.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter" }, ft = { "http" }, opts = { -- Open request results in a horizontal split result_split_horizontal = false, -- Keep the http file buffer above|left when split horizontal|vertical -- result_split_in_place = true, result = { show_curl_command = false, }, }, keys = { {'r', ':hor Rest run'}, }, --[[ opts = function (_, opts) opts.ensure_installed = opts.ensure_installed or {} table.insert(opts.ensure_installed, "http") table.insert(opts.result_split_horizontal, true) table.insert(opts.result_split_in_place, true) end, ]]-- --[[ 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, ]]-- }, }