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", "php", "python", "sql", "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/vim-closetag', ft = { "html", "vue", "javascriptreact", "typescriptreact", "xml" }, config = function() vim.g.closetag_xhtml_filenames = '*.xhtml,*.js,*.tsx' vim.g.clostag_xhtml_filetypes = 'xhtm,jsx,tsx' vim.cmd [[ CloseTagEnableBuffer ]] end, }, { '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, }, }, }, { 'jlcrochet/vim-razor', lazy = false }, -- -- 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, }, filter_kind = { "Constant", "Class", "Constructor", "Enum", "Function", "Interface", "Method", "Module", "Struct", }, }, keys = { {'o', ':AerialToggle'}, } }, -- Language Server Installer { 'williamboman/mason.nvim', lazy = false, 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 = 'deepseek-coder-v2', backend = 'ollama', url = 'http://localhost:11434', tokens_to_clear = {"<|endoftext|>", "```", "python", "lua"}, lsp = { bin_path = vim.api.nvim_call_function("stdpath", { "data" }) .. "/mason/bin/llm-ls", }, context_window = 10240, enable_suggestions_on_startup = true, }, },]]-- { 'mason-org/mason-lspconfig.nvim', dependencies = { 'williamboman/mason.nvim', 'ms-jpq/coq_nvim', 'nanotee/nvim-lsp-basics', 'neovim/nvim-lspconfig', -- 'huggingface/llm.nvim', 'stevearc/aerial.nvim', }, opts = { ensure_installed = { "bashls", "clangd", "gopls", "html", "jsonls", "lua_ls", "omnisharp", "phpactor", "pyright", "sqls", "texlab", "ts_ls" }, }, ft = { "bash", "c", "cpp", "cs", "dart", "go", "html", "javascript", "javascriptreact", "json", "lua", "php", "python", "sql", "tex", "typescript", "typescriptreact", }, --[[ config = function() vim.lsp.config('*', 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, ]]-- -- 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", -- "rest-nvim/tree-sitter-http" -- }, -- 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, ]]-- -- }, }