re-enable cmp and tree-sitter

This commit is contained in:
Joshua Nussbaum 2025-01-21 18:56:10 -06:00
parent d4ce269b03
commit 8e2a82e61d
1 changed files with 155 additions and 155 deletions

302
init.lua
View File

@ -383,7 +383,7 @@ require('lazy').setup({
{ 'j-hui/fidget.nvim', opts = {} }, { 'j-hui/fidget.nvim', opts = {} },
-- Allows extra capabilities provided by nvim-cmp -- Allows extra capabilities provided by nvim-cmp
'hrsh7th/cmp-nvim-lsp', -- 'hrsh7th/cmp-nvim-lsp',
}, },
config = function() config = function()
-- Brief aside: **What is LSP?** -- Brief aside: **What is LSP?**
@ -642,123 +642,123 @@ require('lazy').setup({
}, },
}, },
-- { -- Autocompletion { -- Autocompletion
-- 'hrsh7th/nvim-cmp', 'hrsh7th/nvim-cmp',
-- event = 'InsertEnter', event = 'InsertEnter',
-- dependencies = { dependencies = {
-- -- Snippet Engine & its associated nvim-cmp source -- Snippet Engine & its associated nvim-cmp source
-- { {
-- 'L3MON4D3/LuaSnip', 'L3MON4D3/LuaSnip',
-- build = (function() build = (function()
-- -- Build Step is needed for regex support in snippets. -- Build Step is needed for regex support in snippets.
-- -- This step is not supported in many windows environments. -- This step is not supported in many windows environments.
-- -- Remove the below condition to re-enable on windows. -- Remove the below condition to re-enable on windows.
-- if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then
-- return return
end
return 'make install_jsregexp'
end)(),
dependencies = {
-- `friendly-snippets` contains a variety of premade snippets.
-- See the README about individual language/framework/plugin snippets:
-- https://github.com/rafamadriz/friendly-snippets
{
'rafamadriz/friendly-snippets',
config = function()
require('luasnip.loaders.from_vscode').lazy_load()
end,
},
},
},
'saadparwaiz1/cmp_luasnip',
-- Adds other completion capabilities.
-- nvim-cmp does not ship with all sources by default. They are split
-- into multiple repos for maintenance purposes.
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-path',
},
config = function()
-- See `:help cmp`
local cmp = require 'cmp'
local luasnip = require 'luasnip'
luasnip.config.setup {}
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
completion = { completeopt = 'menu,menuone,noinsert' },
-- For an understanding of why these mappings were
-- chosen, you will need to read `:help ins-completion`
--
-- No, but seriously. Please read `:help ins-completion`, it is really good!
mapping = cmp.mapping.preset.insert {
-- Select the [n]ext item
['<C-n>'] = cmp.mapping.select_next_item(),
-- Select the [p]revious item
['<C-p>'] = cmp.mapping.select_prev_item(),
-- Scroll the documentation window [b]ack / [f]orward
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
-- Accept ([y]es) the completion.
-- This will auto-import if your LSP supports it.
-- This will expand snippets if the LSP sent a snippet.
['<C-y>'] = cmp.mapping.confirm { select = true },
-- If you prefer more traditional completion keymaps,
-- you can uncomment the following lines
--['<CR>'] = cmp.mapping.confirm { select = true },
--['<Tab>'] = cmp.mapping.select_next_item(),
--['<S-Tab>'] = cmp.mapping.select_prev_item(),
-- Manually trigger a completion from nvim-cmp.
-- Generally you don't need this, because nvim-cmp will display
-- completions whenever it has completion options available.
['<C-Space>'] = cmp.mapping.complete {},
-- Think of <c-l> as moving to the right of your snippet expansion.
-- So if you have a snippet that's like:
-- function $name($args)
-- $body
-- end -- end
-- return 'make install_jsregexp'
-- end)(),
-- dependencies = {
-- -- `friendly-snippets` contains a variety of premade snippets.
-- -- See the README about individual language/framework/plugin snippets:
-- -- https://github.com/rafamadriz/friendly-snippets
-- {
-- 'rafamadriz/friendly-snippets',
-- config = function()
-- require('luasnip.loaders.from_vscode').lazy_load()
-- end,
-- },
-- },
-- },
-- 'saadparwaiz1/cmp_luasnip',
-- --
-- -- Adds other completion capabilities. -- <c-l> will move you to the right of each of the expansion locations.
-- -- nvim-cmp does not ship with all sources by default. They are split -- <c-h> is similar, except moving you backwards.
-- -- into multiple repos for maintenance purposes. ['<C-l>'] = cmp.mapping(function()
-- 'hrsh7th/cmp-nvim-lsp', if luasnip.expand_or_locally_jumpable() then
-- 'hrsh7th/cmp-path', luasnip.expand_or_jump()
-- }, end
-- config = function() end, { 'i', 's' }),
-- -- See `:help cmp` ['<C-h>'] = cmp.mapping(function()
-- local cmp = require 'cmp' if luasnip.locally_jumpable(-1) then
-- local luasnip = require 'luasnip' luasnip.jump(-1)
-- luasnip.config.setup {} end
-- end, { 'i', 's' }),
-- cmp.setup {
-- snippet = { -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
-- expand = function(args) -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
-- luasnip.lsp_expand(args.body) },
-- end, sources = {
-- }, {
-- completion = { completeopt = 'menu,menuone,noinsert' }, name = 'lazydev',
-- -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
-- -- For an understanding of why these mappings were group_index = 0,
-- -- chosen, you will need to read `:help ins-completion` },
-- -- { name = 'nvim_lsp' },
-- -- No, but seriously. Please read `:help ins-completion`, it is really good! { name = 'luasnip' },
-- mapping = cmp.mapping.preset.insert { { name = 'path' },
-- -- Select the [n]ext item { name = 'copilot' },
-- ['<C-n>'] = cmp.mapping.select_next_item(), { name = 'buffer' },
-- -- Select the [p]revious item },
-- ['<C-p>'] = cmp.mapping.select_prev_item(), }
-- end,
-- -- Scroll the documentation window [b]ack / [f]orward },
-- ['<C-b>'] = cmp.mapping.scroll_docs(-4),
-- ['<C-f>'] = cmp.mapping.scroll_docs(4),
--
-- -- Accept ([y]es) the completion.
-- -- This will auto-import if your LSP supports it.
-- -- This will expand snippets if the LSP sent a snippet.
-- ['<C-y>'] = cmp.mapping.confirm { select = true },
--
-- -- If you prefer more traditional completion keymaps,
-- -- you can uncomment the following lines
-- --['<CR>'] = cmp.mapping.confirm { select = true },
-- --['<Tab>'] = cmp.mapping.select_next_item(),
-- --['<S-Tab>'] = cmp.mapping.select_prev_item(),
--
-- -- Manually trigger a completion from nvim-cmp.
-- -- Generally you don't need this, because nvim-cmp will display
-- -- completions whenever it has completion options available.
-- ['<C-Space>'] = cmp.mapping.complete {},
--
-- -- Think of <c-l> as moving to the right of your snippet expansion.
-- -- So if you have a snippet that's like:
-- -- function $name($args)
-- -- $body
-- -- end
-- --
-- -- <c-l> will move you to the right of each of the expansion locations.
-- -- <c-h> is similar, except moving you backwards.
-- ['<C-l>'] = cmp.mapping(function()
-- if luasnip.expand_or_locally_jumpable() then
-- luasnip.expand_or_jump()
-- end
-- end, { 'i', 's' }),
-- ['<C-h>'] = cmp.mapping(function()
-- if luasnip.locally_jumpable(-1) then
-- luasnip.jump(-1)
-- end
-- end, { 'i', 's' }),
--
-- -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
-- -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
-- },
-- sources = {
-- {
-- name = 'lazydev',
-- -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
-- group_index = 0,
-- },
-- { name = 'nvim_lsp' },
-- { name = 'luasnip' },
-- { name = 'path' },
-- { name = 'copilot' },
-- { name = 'buffer' },
-- },
-- }
-- end,
-- },
{ -- You can easily change to a different colorscheme. { -- You can easily change to a different colorscheme.
-- Change the name of the colorscheme plugin below, and then -- Change the name of the colorscheme plugin below, and then
@ -783,43 +783,43 @@ require('lazy').setup({
-- Highlight todo, notes, etc in comments -- Highlight todo, notes, etc in comments
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } }, { 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
{ -- Collection of various small independent plugins/modules -- { -- Collection of various small independent plugins/modules
'echasnovski/mini.nvim', -- 'echasnovski/mini.nvim',
config = function() -- config = function()
-- Better Around/Inside textobjects -- -- Better Around/Inside textobjects
-- --
-- -- Examples:
-- -- - va) - [V]isually select [A]round [)]paren
-- -- - yinq - [Y]ank [I]nside [N]ext [Q]uote
-- -- - ci' - [C]hange [I]nside [']quote
-- require('mini.ai').setup { n_lines = 500 }
-- --
-- Examples: -- -- Add/delete/replace surroundings (brackets, quotes, etc.)
-- - va) - [V]isually select [A]round [)]paren -- --
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote -- -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - ci' - [C]hange [I]nside [']quote -- -- - sd' - [S]urround [D]elete [']quotes
require('mini.ai').setup { n_lines = 500 } -- -- - sr)' - [S]urround [R]eplace [)] [']
-- require('mini.surround').setup()
-- Add/delete/replace surroundings (brackets, quotes, etc.)
-- --
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren -- -- Simple and easy statusline.
-- - sd' - [S]urround [D]elete [']quotes -- -- You could remove this setup call if you don't like it,
-- - sr)' - [S]urround [R]eplace [)] ['] -- -- and try some other statusline plugin
require('mini.surround').setup() -- local statusline = require 'mini.statusline'
-- -- set use_icons to true if you have a Nerd Font
-- Simple and easy statusline. -- statusline.setup { use_icons = vim.g.have_nerd_font }
-- You could remove this setup call if you don't like it, --
-- and try some other statusline plugin -- -- You can configure sections in the statusline by overriding their
local statusline = require 'mini.statusline' -- -- default behavior. For example, here we set the section for
-- set use_icons to true if you have a Nerd Font -- -- cursor location to LINE:COLUMN
statusline.setup { use_icons = vim.g.have_nerd_font } -- ---@diagnostic disable-next-line: duplicate-set-field
-- statusline.section_location = function()
-- You can configure sections in the statusline by overriding their -- return '%2l:%-2v'
-- default behavior. For example, here we set the section for -- end
-- cursor location to LINE:COLUMN --
---@diagnostic disable-next-line: duplicate-set-field -- -- ... and there is more!
statusline.section_location = function() -- -- Check out: https://github.com/echasnovski/mini.nvim
return '%2l:%-2v' -- end,
end -- },
-- ... and there is more!
-- Check out: https://github.com/echasnovski/mini.nvim
end,
},
{ -- Highlight, edit, and navigate code { -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate', build = ':TSUpdate',