Skip to content

Migrate from nvim-cmp to blink.cmp and from telescope to fzf-lua #1444

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 65 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
bdb9a41
Initial commit
eodomo Apr 16, 2024
172df19
Some initial changes
eodomo Apr 17, 2024
881dfa6
import filetree.lua
Apr 17, 2024
07d000a
add neotree hotkey
Apr 17, 2024
b800cd4
make which-key less aggressive
eodomo Apr 17, 2024
15fe661
add autopairs
eodomo Apr 17, 2024
0dfeae9
add neotree git_status hotkey
Apr 17, 2024
4184e30
Merge branch 'master' of https://github.com/eodomo/kickstart.nvim
Apr 17, 2024
4d88798
add undotree
eodomo Apr 17, 2024
bf123f8
always include clangd and rust_analyzer
eodomo Apr 17, 2024
30b6534
merge
Apr 18, 2024
e046a8d
remove <leader><leader>g
eodomo Apr 18, 2024
3c78320
add tabset, remove tabchar from listchars, start building DAP for Godot
eodomo Apr 19, 2024
52d20ac
increase scrolloff
eodomo Apr 19, 2024
2ca9d9c
finish setting up Godot LSP
eodomo Apr 19, 2024
1c41768
install dap-ui and ibl
eodomo Apr 19, 2024
a169239
set colorscheme to catpuccin-mocha
eodomo Apr 19, 2024
3ebb2a3
install folke/trouble.nvim
Apr 19, 2024
c5a3dbe
Add Linux support for Godot DAP
eodomo Apr 20, 2024
ab30b3e
remove delve from Mason
May 1, 2024
0491303
delete init.lua
eodomo May 22, 2024
302070f
Add description for UndoTree toggle
eodomo Jun 3, 2024
f2e925d
Merge branch 'master' of https://github.com/eodomo/kickstart.nvim
eodomo Jun 3, 2024
759447b
Add quick semicolon keymap
eodomo Jun 3, 2024
71b31d0
Add quick comma keymap
eodomo Jun 10, 2024
4323cb8
enable nerdfonts
eodomo Jul 11, 2024
7a86cc4
fix trouble and set LSP autocomplete key to Tab
eodomo Jul 14, 2024
33a95b4
Correct issue with which-key following update
eodomo Jul 16, 2024
d04061e
start making snippets work
eodomo Jul 19, 2024
96d7024
less-stupid autocomplete hotkeys
eodomo Aug 12, 2024
dce7f6e
add rust snippets and update autocomplete button
eodomo Aug 13, 2024
ce2b771
add floaterm
eodomo Sep 19, 2024
47489ff
sync clipboard between neovim and OS
eodomo Sep 19, 2024
28cee44
update which-key
eodomo Sep 19, 2024
496cdd6
remove floaterm
eodomo Sep 19, 2024
15e73b7
add hlchunk
eodomo Oct 3, 2024
15365ed
Merge branch 'master' of github.com:eodomo/kickstart.nvim
eodomo Oct 3, 2024
99164ee
modify hlchunk animation time
eodomo Oct 16, 2024
452643f
add keybind for cycling buffers
eodomo Nov 13, 2024
27504f0
Merge branch 'master' of https://github.com/eodomo/kickstart.nvim
eodomo Nov 13, 2024
f06e754
add powershell LSP support
eodomo Jan 22, 2025
138fd96
clean up unused powershell LSP files
eodomo Jan 22, 2025
cd02e79
add Go LSP support
eodomo Jan 23, 2025
881e323
picking out the lint
eodomo Jan 23, 2025
23fab50
Merge branch 'master' of github.com:eodomo/kickstart.nvim
eodomo Jan 23, 2025
46ecf3a
more fixes to get powershell working, and remove Go LSP
eodomo Jan 23, 2025
63d2f39
Merge branch 'master' of https://github.com/eodomo/kickstart.nvim
eodomo Jan 23, 2025
7e9ecf7
initial move to blink.cmp
eodomo Mar 29, 2025
bef3e97
rounded window borders
eodomo Mar 29, 2025
85ea713
add blink.nvim
eodomo Mar 29, 2025
98f4d16
update to-do
eodomo Mar 29, 2025
89fc87b
fix to-do spacing
eodomo Mar 29, 2025
2086ea6
add fzf-lua.nvim
eodomo Mar 29, 2025
fea8d52
Update todo.md
eodomo Mar 29, 2025
61dbec0
LSP working
eodomo Mar 31, 2025
7ca3a69
cleanup
eodomo Mar 31, 2025
cb64d9e
more cleanup
eodomo Mar 31, 2025
f7c17e5
Merge branch 'blink' of https://github.com/eodomo/kickstart.nvim into…
eodomo Mar 31, 2025
19f6d2e
update todo
eodomo Mar 31, 2025
a87c5e3
start working on getting godot LSP working
eodomo Apr 1, 2025
4cc7dd1
disable extra lua warnings
eodomo Apr 3, 2025
c585a59
fix duplicate entry for completion
eodomo Apr 3, 2025
b3e34a7
finish adding details to repro.lua
eodomo Apr 3, 2025
1cdaf99
build from master branch instead of release build to fix godot lsp au…
eodomo Apr 3, 2025
62471c0
update todo
eodomo Apr 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ nvim

spell/
lazy-lock.json
.repro
590 changes: 74 additions & 516 deletions init.lua

Large diffs are not rendered by default.

12 changes: 12 additions & 0 deletions lua/custom/plugins/autopairs.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
return {
'windwp/nvim-autopairs',
-- Optional dependency
dependencies = { 'hrsh7th/nvim-cmp' },
config = function()
require('nvim-autopairs').setup {}
-- If you want to automatically add `(` after selecting a function or method
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
local cmp = require 'cmp'
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
end,
}
12 changes: 12 additions & 0 deletions lua/custom/plugins/filetree.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
return {
"nvim-neo-tree/neo-tree.nvim",
version = "*",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim",
},
config = function ()
require('neo-tree').setup {}
end,
}
13 changes: 13 additions & 0 deletions lua/custom/plugins/hlchunk.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
return {
'shellRaining/hlchunk.nvim',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
require('hlchunk').setup {
chunk = {
enable = false,
duration = 150,
delay = 1,
},
}
end,
}
5 changes: 0 additions & 5 deletions lua/custom/plugins/init.lua

This file was deleted.

10 changes: 10 additions & 0 deletions lua/custom/plugins/tabset.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
return {
'FotiadisM/tabset.nvim',
config = function()
require('tabset').setup {
defaults = {
tabwidth = 4,
},
}
end,
}
38 changes: 38 additions & 0 deletions lua/custom/plugins/trouble.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
return {
'folke/trouble.nvim',
-- branch = 'dev', -- IMPORTANT!
cmd = 'Trouble',
keys = {
{
'<leader>xx',
'<cmd>Trouble diagnostics toggle<cr>',
desc = 'Diagnostics (Trouble)',
},
{
'<leader>xX',
'<cmd>Trouble diagnostics toggle filter.buf=0<cr>',
desc = 'Buffer Diagnostics (Trouble)',
},
{
'<leader>cs',
'<cmd>Trouble symbols toggle focus=false<cr>',
desc = 'Symbols (Trouble)',
},
{
'<leader>cl',
'<cmd>Trouble lsp toggle focus=false win.position=right<cr>',
desc = 'LSP Definitions / references / ... (Trouble)',
},
{
'<leader>xL',
'<cmd>Trouble loclist toggle<cr>',
desc = 'Location List (Trouble)',
},
{
'<leader>xQ',
'<cmd>Trouble qflist toggle<cr>',
desc = 'Quickfix List (Trouble)',
},
},
opts = {}, -- for default options, refer to the configuration section for custom setup.
}
3 changes: 3 additions & 0 deletions lua/custom/plugins/undotree.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
return {
'mbbill/undotree',
}
7 changes: 6 additions & 1 deletion lua/kickstart/plugins/debug.lua
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,12 @@ return {
-- online, please don't ask me how to install them :)
ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want
'delve',
'clangd',
'json-lsp',
'rust-analyzer',
'lua-language-server',
'stylua',
'xmlformatter',
},
}

Expand Down
39 changes: 39 additions & 0 deletions lua/lsp/blink.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
return { -- blink autocompletion
'saghen/blink.cmp',
dependencies = { 'rafamadriz/friendly-snippets' },
-- version = '*',
build = 'cargo build --release',
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
completion = {
documentation = { auto_show = true },
list = {
selection = {
preselect = false,
},
},
},
keymap = {
preset = 'enter',
['<Tab>'] = { 'select_next', 'fallback' },
['<S-Tab>'] = { 'select_prev', 'fallback' },
},
appearance = {
nerd_font_variant = 'normal',
},
sources = {
-- add lazydev to your completion providers
default = { 'lazydev', 'lsp', 'path', 'snippets', 'buffer' },
providers = {
lazydev = {
name = 'LazyDev',
module = 'lazydev.integrations.blink',
-- make lazydev completions top priority (see `:h blink.cmp`)
score_offset = 100,
},
},
},
},
opts_extend = { 'sources.default' },
}
18 changes: 18 additions & 0 deletions lua/lsp/fuzzy.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
return { -- FZF (Telescope replacement)
'ibhagwan/fzf-lua',
-- optional for icon support
dependencies = { 'nvim-tree/nvim-web-devicons' },
-- or if using mini.icons/mini.nvim
-- dependencies = { 'echasnovski/mini.icons' },
opts = {},
-- [[ fzf keybinds]]
config = function()
local fzf = require 'fzf-lua'
vim.keymap.set('n', '<leader>sw', fzf.grep_cword, { desc = '[S]earch [W]ord' })
vim.keymap.set('n', '<leader>sf', fzf.files, { desc = '[S]earch [F]iles' })
vim.keymap.set('n', '<leader>sg', fzf.live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sg', fzf.live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sr', fzf.resume, { desc = '[S]earch [R]esume' })
vim.keymap.set('n', '<leader>/', fzf.blines, { desc = '[/] Fuzzily search in current buffer' })
end,
}
22 changes: 22 additions & 0 deletions lua/lsp/godot_dap.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
return { -- DAP for Godot - https://docs.godotengine.org/en/stable/tutorials/editor/external_editor.html#lsp-dap-support
'mfussenegger/nvim-dap',
config = function()
local dap = require 'dap'
dap.adapters.godot = {
type = 'server',
host = '127.0.0.1',
port = 6006,
}

dap.configurations.gdscript = {
{
launch_game_instance = false,
launch_scene = false,
name = 'Launch scene',
project = '${workspaceFolder}',
request = 'launch',
type = 'godot',
},
}
end,
}
109 changes: 109 additions & 0 deletions lua/lsp/lsp.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
return {
'neovim/nvim-lspconfig',
dependencies = {
-- Automatically install LSPs and related tools to stdpath for Neovim
'williamboman/mason.nvim',
'williamboman/mason-lspconfig.nvim',
'WhoIsSethDaniel/mason-tool-installer.nvim',
'saghen/blink.cmp',

-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
-- used for completion, annotations and signatures of Neovim apis
{ 'folke/lazydev.nvim', opts = {} },

-- Useful status updates for LSP.
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
{ 'j-hui/fidget.nvim', opts = {} },
},
config = function()
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }),
callback = function(event)
-- Automatically highlight copies of the hovered word and then clear on cursor move
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client.server_capabilities.documentHighlightProvider then
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
buffer = event.buf,
callback = vim.lsp.buf.document_highlight,
})

vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
buffer = event.buf,
callback = vim.lsp.buf.clear_references,
})
end
end,
})

local servers = {
clangd = {},
-- gopls = {},
-- pyright = {},
rust_analyzer = {},
powershell_es = {},
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
--
-- Some languages (like typescript) have entire language plugins that can be useful:
-- https://github.com/pmizio/typescript-tools.nvim
--
-- But for many setups, the LSP (`tsserver`) will work just fine
-- tsserver = {},
--
lua_ls = {
-- cmd = {...},
-- filetypes = { ...},
-- capabilities = {},
settings = {
Lua = {
completion = {
callSnippet = 'Replace',
},
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
diagnostics = { disable = { 'missing-fields' } },
},
},
},
}

require('mason').setup()
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
'stylua', -- Used to format Lua code
})
require('mason-tool-installer').setup { ensure_installed = ensure_installed }

require('mason-lspconfig').setup {
handlers = {
function(server_name)
local server = servers[server_name] or {}
server.capabilities = require('blink.cmp').get_lsp_capabilities(server.capabilities)
require('lspconfig')[server_name].setup(server)
end,

powershell_es = function()
local lspconfig = require 'lspconfig'
lspconfig.powershell_es.setup {
init_options = { enableProfileLoading = false },
filetypes = { 'ps1' },
on_attach = function(client, bufnr)
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
end,
settings = { powershell = { codeFormatting = { Preset = 'OTBS' } } },
}
end,
},
}
-- Godot's LSP - Requires Godot to be running
if vim.fn.has 'win32' then
require('lspconfig')['gdscript'].setup {
cmd = { 'ncat', '127.0.0.1', '6005' },
name = 'godot',
}
else
require('lspconfig')['gdscript'].setup {
cmd = vim.lsp.rpc.connect('127.0.0.1', 6005),
name = 'godot',
}
end
end,
}
37 changes: 37 additions & 0 deletions lua/misc/blink.nvim.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
return {
'saghen/blink.nvim',
build = 'cargo build --release', -- for delimiters
keys = {
-- chartoggle
{
';',
function()
require('blink.chartoggle').toggle_char_eol ';'
end,
mode = { 'n', 'v' },
desc = 'Toggle ; at eol',
},
{
',',
function()
require('blink.chartoggle').toggle_char_eol ','
end,
mode = { 'n', 'v' },
desc = 'Toggle , at eol',
},

--[[
-- tree
{ '<C-e>', '<cmd>BlinkTree reveal<cr>', desc = 'Reveal current file in tree' },
{ '<leader>E', '<cmd>BlinkTree toggle<cr>', desc = 'Reveal current file in tree' },
{ '<leader>e', '<cmd>BlinkTree toggle-focus<cr>', desc = 'Toggle file tree focus' },
--]]
},
-- all modules handle lazy loading internally
lazy = false,
opts = {
chartoggle = { enabled = true },
indent = { enabled = false },
tree = { enabled = false },
},
}
Loading
Loading