diff options
| author | Ian Griffin <migriffin@disroot.org> | 2026-01-16 14:50:13 +0800 |
|---|---|---|
| committer | Ian Griffin <migriffin@disroot.org> | 2026-01-16 14:50:13 +0800 |
| commit | 1491a28c3f5a7f369052f288d5c0cc2e81e92083 (patch) | |
| tree | b94cfc21b0533290f90d04a66e4b88f406e09e3d /lua/plugins | |
| parent | 9b4772487b7dffb8e5176292e5e945885f97fcab (diff) | |
moved to nvim-cmp, replaced coq
Diffstat (limited to 'lua/plugins')
| -rw-r--r-- | lua/plugins/10_ide.lua | 309 |
1 files changed, 220 insertions, 89 deletions
diff --git a/lua/plugins/10_ide.lua b/lua/plugins/10_ide.lua index 83cf3bc..ec7ffbb 100644 --- a/lua/plugins/10_ide.lua +++ b/lua/plugins/10_ide.lua @@ -36,21 +36,151 @@ return { -- -- 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 + -- }, + { + "garymjr/nvim-snippets", + dependencies = { "rafamadriz/friendly-snippets" }, + opts = { + friendly_snippets = true, + }, + keys = { + { + "<Tab>", + function() + if vim.snippet.active({ direction = 1 }) then + vim.schedule(function() vim.snippet.jump(1) end) + return + end + return "<Tab>" + end, + expr = true, + silent = true, + mode = "i", + }, + { + "<Tab>", + function() + if vim.snippet.active({ direction = 1 }) then + vim.schedule(function() vim.snippet.jump(1) end) + return + end + end, + expr = true, + silent = true, + mode = "s", + }, + { + "<S-Tab>", + function() + if vim.snippet.active({ direction = -1 }) then + vim.schedule(function() vim.snippet.jump(-1) end) + return + end + return "<S-Tab>" + end, + expr = true, + silent = true, + mode = { "i", "s" }, + }, + }, }, + -- { + -- "tzachar/cmp-ai", + -- dependencies = "nvim-lua/plenary.nvim", + -- config = function() + -- local cmp_ai = require("cmp_ai.config") + -- + -- cmp_ai:setup({ + -- max_lines = 1000, + -- provider = "Ollama", -- Change to 'Ollama', 'HF', etc. as needed + -- provider_options = { + -- model = "qwen2.5-coder:latest", + -- }, + -- notify = true, + -- run_on_every_keystroke = true, + -- }) + -- end, + -- }, { - 'ms-jpq/coq_nvim', - dependencies = { 'ms-jpq/coq.artifacts' }, - branch = 'coq', - build = ':COQdeps', - event = { "BufEnter" }, + "hrsh7th/nvim-cmp", + event = { "InsertEnter", "CmdlineEnter" }, + dependencies = { + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-nvim-lsp-signature-help", + "hrsh7th/cmp-nvim-lsp-document-symbol", + "hrsh7th/cmp-cmdline", + "amarz45/nvim-cmp-fonts", + -- "tzachar/cmp-ai", + "garymjr/nvim-snippets", -- Ensure the snippet source is loaded + }, config = function() - vim.cmd([[autocmd VimEnter * COQnow -s]]) - end + local cmp = require("cmp") + + cmp.setup({ + snippet = { + expand = function(args) + -- Use native neovim snippets + vim.snippet.expand(args.body) + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + ["<C-b>"] = cmp.mapping.scroll_docs(-4), + ["<C-f>"] = cmp.mapping.scroll_docs(4), + ["<C-Space>"] = cmp.mapping.complete(), + ["<C-e>"] = cmp.mapping.abort(), + ["<CR>"] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "snippets" }, -- This comes from nvim-snippets + { name = "nvim_lsp_signature_help" }, + { name = "cmp_ai" }, + }, { + { name = "buffer" }, + { name = "path" }, + { name = "fonts", option = { space_filter = "-" } }, + }), + }) + + -- ... (Keep cmdline setup as before) ... + cmp.setup.cmdline({ "/", "?" }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = "nvim_lsp_document_symbol" }, + { name = "buffer" }, + }, + }) + + cmp.setup.cmdline(":", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = "path" }, + }, { + { name = "cmdline" }, + }), + matching = { disallow_symbol_nonprefix_matching = false }, + }) + end, }, - -- -- Language Configurations -- @@ -99,36 +229,9 @@ return { -- 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 = { - {'<Leader>o', ':AerialToggle<LF>'}, - } - }, - -- Language Server Installer { - 'williamboman/mason.nvim', + 'mason-org/mason.nvim', lazy = false, cmd = { "Mason", @@ -146,13 +249,6 @@ return { }, }, }, - { - 'neovim/nvim-lspconfig', - config = function() - -- disable inline error messages - vim.diagnostic.config({ virtual_text = false }) - end - }, --[[{ 'huggingface/llm.nvim', opts = { @@ -166,16 +262,28 @@ return { context_window = 10240, enable_suggestions_on_startup = true, }, + }, + { + 'jacob411/Ollama-Copilot', + ft = {'python', 'lua', 'go', "markdown"}, + opts = { + model_name = "qwen2.5-coder:latest", + filetypes = {'python', 'lua','vim', "markdown"}, + ollama_model_opts = { + num_predict = 40, + temperature = 0.1, + }, + } },]]-- { 'mason-org/mason-lspconfig.nvim', dependencies = { - 'williamboman/mason.nvim', - 'ms-jpq/coq_nvim', - 'nanotee/nvim-lsp-basics', - 'neovim/nvim-lspconfig', + 'mason-org/mason.nvim', + -- 'ms-jpq/coq_nvim', + -- 'nanotee/nvim-lsp-basics', + -- 'neovim/nvim-lspconfig', -- 'huggingface/llm.nvim', - 'stevearc/aerial.nvim', + -- 'stevearc/aerial.nvim', }, opts = { ensure_installed = { @@ -193,6 +301,60 @@ return { "ts_ls" }, }, + }, + + -- 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 = { + {'<Leader>o', ':AerialToggle<LF>'}, + } + }, + + + -- Show code diagnostics in a separate buffer window + { + 'folke/trouble.nvim', + opts = {}, + + cmd = { + "Trouble", + }, + + keys = { + {'<Leader>t', ':Trouble diagnostics toggle<CR>'}, + } + }, + { + 'neovim/nvim-lspconfig', + dependencies = { + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-nvim-lsp-document-symbol", + "hrsh7th/cmp-nvim-lsp-signature-help", + 'folke/trouble.nvim', + 'mason-org/mason-lspconfig.nvim', + 'mason-org/mason.nvim', + 'stevearc/aerial.nvim', + }, ft = { "bash", "c", @@ -212,47 +374,16 @@ return { "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", - }, + config = function() + -- disable inline error messages + vim.diagnostic.config({ virtual_text = false }) + local capabilities = require('cmp_nvim_lsp').default_capabilities() - keys = { - {'<Leader>t', ':Trouble diagnostics toggle<CR>'}, - } + vim.lsp.config('*', { + capabilities = capabilities, + }) + + end }, -- -- Markdown Live Preview |
