Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion init.lua
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
require("core") -- load basic configs
require("plugins.ui.theme") -- load theme/color configs
require("plugins")
23 changes: 0 additions & 23 deletions lua/core/bindings/bindings.lua

This file was deleted.

2 changes: 0 additions & 2 deletions lua/core/init.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
-- Basic configs
require("core.basic")
require("core.bindings")
-- Setup Rocks Package Manager
require("core.rocks")
51 changes: 0 additions & 51 deletions lua/core/rocks.lua

This file was deleted.

33 changes: 0 additions & 33 deletions lua/plugins/autocomplete/cmp/bindings.lua

This file was deleted.

25 changes: 5 additions & 20 deletions lua/plugins/autocomplete/cmp/cmdline.lua
Original file line number Diff line number Diff line change
@@ -1,21 +1,6 @@
local function setup_cmdline(cmp)
cmp.setup.cmdline("/", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "nvim_lsp_document_symbol" },
}, {
{ name = "buffer" },
}),
})

cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
})
local M = {}
function M.setup_cmdline(cmp)
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 = {{name='path'},{name='cmdline'}} })
end

return { setup_cmdline = setup_cmdline }
return M
49 changes: 16 additions & 33 deletions lua/plugins/autocomplete/cmp/formatting.lua
Original file line number Diff line number Diff line change
@@ -1,34 +1,17 @@
local function setup_formatting(cmp, lspkind)
cmp.setup({
formatting = {
fields = {
cmp.ItemField.Abbr,
cmp.ItemField.Kind,
cmp.ItemField.Menu,
},
format = lspkind.cmp_format({
mode = "symbol_text",
maxwidth = 40,
before = function(entry, vim_item)
local source_mapping = {
nvim_lsp = "[LSP]",
spell = "[SPL]",
dictionary = "[DCT]",
path = "[FIL]",
luasnip = "[SNP]",
buffer = "[BUF]",
}

-- Use `kind` to set the appropriate icon
vim_item.kind = lspkind.presets.default[vim_item.kind] or vim_item.kind
-- Set the menu text based on the source
vim_item.menu = source_mapping[entry.source.name] or ""

return vim_item
end,
}),
},
})
local lspkind = require('lspkind')
local M = {}
function M.get_formatting()
return {
fields = { cmp.ItemField.Abbr, cmp.ItemField.Kind, cmp.ItemField.Menu },
format = lspkind.cmp_format({
mode = 'symbol_text', maxwidth = 40,
before = function(entry, item)
local icons = { nvim_lsp='[LSP]', mini_snippets='[SNP]', buffer='[BUF]', path='[FIL]' }
item.kind = lspkind.presets.default[item.kind] or item.kind
item.menu = icons[entry.source.name] or ''
return item
end,
}),
}
end

return { setup_formatting = setup_formatting }
return M
2 changes: 0 additions & 2 deletions lua/plugins/autocomplete/cmp/init.lua
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
require("plugins.autocomplete.cmp.main")
require("plugins.autocomplete.cmp.snippets")

47 changes: 19 additions & 28 deletions lua/plugins/autocomplete/cmp/main.lua
Original file line number Diff line number Diff line change
@@ -1,30 +1,21 @@
-- Required modules
local cmp = require("cmp")
local lspkind = require("lspkind")
local luasnip = require("luasnip")
local compare = require("cmp.config.compare")
local cmp = require("cmp")
local mapping = require("plugins.autocomplete.cmp.mapping").setup_mapping(cmp)
local sources = require("plugins.autocomplete.cmp.sources").get_sources()
local formatting = require("plugins.autocomplete.cmp.formatting").get_formatting()
local sorting = require("plugins.autocomplete.cmp.sorting").get_sorting()
local window = require("plugins.autocomplete.cmp.window").get_window()
local cmdline = require("plugins.autocomplete.cmp.cmdline").setup_cmdline
local snippet = require("plugins.autocomplete.cmp.snippet").get_snippet()

-- Single cmp.setup with all modules combined
cmp.setup({
snippet = snippet,
mapping = mapping,
sources = sources,
formatting = formatting,
sorting = sorting,
window = window,
})

-- Import setup functions from separate modules
local sorting = require("plugins.autocomplete.cmp.sorting").setup_sorting
local snippet = require("plugins.autocomplete.cmp.snippets.cmp_snippet").setup_snippet
local window = require("plugins.autocomplete.cmp.window").setup_window
local sources = require("plugins.autocomplete.cmp.sources").setup_sources
local bindings = require("plugins.autocomplete.cmp.bindings").setup_mapping
local formatting = require("plugins.autocomplete.cmp.formatting").setup_formatting
local cmdline = require("plugins.autocomplete.cmp.cmdline").setup_cmdline

-- Main setup function
local function setup()
sorting(cmp, compare)
snippet(cmp, luasnip)
window(cmp)
sources(cmp)
bindings(cmp)
formatting(cmp, lspkind)
cmdline(cmp)
end


-- Run setup
setup()
-- Setup cmdline completion
cmdline(cmp)
15 changes: 15 additions & 0 deletions lua/plugins/autocomplete/cmp/mapping.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
local M = {}
function M.setup_mapping(cmp)
return cmp.mapping.preset.insert({
["<C-n>"] = cmp.mapping.select_next_item(),
["<C-p>"] = cmp.mapping.select_prev_item(),
["<Tab>"] = function(fallback) if cmp.visible() then cmp.select_next_item() else fallback() end end,
["<S-Tab>"] = function(fallback) if cmp.visible() then cmp.select_prev_item() else fallback() end end,
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
})
end
return M
44 changes: 44 additions & 0 deletions lua/plugins/autocomplete/cmp/snippet.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
local M = {}
function M.get_snippet()
local ms = require('mini.snippets')
local loader = ms.gen_loader
ms.setup({
snippets = {
loader.from_file(vim.fn.stdpath('config') .. '/snippets/global.json'),
loader.from_lang(),
},
})
-- Auto-create stub on MasonInstallEnd
vim.api.nvim_create_autocmd('User', {
pattern = 'MasonInstallEnd',
callback = function(evt)
local lang = evt.data[1]
local dir = vim.fn.stdpath('config') .. '/snippets'
vim.fn.mkdir(dir, 'p')
local file = dir .. '/' .. lang .. '.json'
if vim.fn.filereadable(file) == 0 then
vim.fn.writefile({"{}"}, file)
vim.notify('Created snippet config: ' .. file)
end
end,
})
-- SnipEdit command
vim.api.nvim_create_user_command('SnipEdit', function(opts)
local lang = opts.args
local file = vim.fn.stdpath('config') .. '/snippets/' .. lang .. '.json'
if vim.fn.filereadable(file) == 0 then
vim.fn.writefile({"{}"}, file)
vim.notify('Stub created: ' .. file)
end
vim.cmd('edit ' .. file)
end, {
nargs = 1,
complete = function(_, input)
return vim.fn.readdir(vim.fn.stdpath('config') .. '/snippets')
end,
})
-- Return snippet expansion table
return { expand = function(args) require('mini.snippets').default_expand(args) end }
end
return M

11 changes: 0 additions & 11 deletions lua/plugins/autocomplete/cmp/snippets/cmp_snippet.lua

This file was deleted.

1 change: 0 additions & 1 deletion lua/plugins/autocomplete/cmp/snippets/init.lua

This file was deleted.

18 changes: 0 additions & 18 deletions lua/plugins/autocomplete/cmp/snippets/main.lua

This file was deleted.

34 changes: 13 additions & 21 deletions lua/plugins/autocomplete/cmp/sorting.lua
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
local function setup_sorting(cmp, compare)
cmp.setup({
sorting = {
priority_weight = 1.0,
comparators = {
compare.offset, -- prioritizes items closer to the cursor
compare.exact, -- prioritizes items starting with exactly the same prefix
compare.score, -- prioritizes item similarity score
compare.recently_used, -- prioritizes recently used items
compare.kind, -- prioritizes items with the same kind
compare.sort_text, -- prioritizes prefix matches within completion items
compare.length, -- prioritizes shorter completion items
compare.order, -- prioritizes items in the same received order
},
debug = {
priority = true,
},
},
})
local cmp_compare = require('cmp.config.compare')
local M = {}
function M.get_sorting()
return {
priority_weight = 1.0,
comparators = {
cmp_compare.offset, cmp_compare.exact, cmp_compare.score,
cmp_compare.recently_used, cmp_compare.kind,
cmp_compare.sort_text, cmp_compare.length, cmp_compare.order,
},
debug = { priority = true },
}
end

return { setup_sorting = setup_sorting }
return M
Loading