feat(cmp): update to blink.cmp

This commit is contained in:
Kristofers Solo 2024-12-24 16:03:46 +02:00
parent 5c88edfa70
commit f8a4240bf6
30 changed files with 419 additions and 563 deletions

5
ftdetect/rasi.lua Normal file
View File

@ -0,0 +1,5 @@
vim.filetype.add({
extension = {
rasi = "rasi",
},
})

View File

@ -3,38 +3,31 @@
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
"bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" },
"catppuccin.nvim": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" },
"blink-ripgrep.nvim": { "branch": "main", "commit": "8a47d404a359c70c796cb0979ddde4c788fd44e5" },
"blink.cmp": { "branch": "main", "commit": "5f442681df24fe705d1ee7ce5b4d435aa4b4dee4" },
"blink.compat": { "branch": "main", "commit": "78f3f7187ff4a1444e952548c556d936da8f72fc" },
"catppuccin.nvim": { "branch": "main", "commit": "5d9582dbbe37e465f7f93ca6e3dd60cd20eea44f" },
"ccc.nvim": { "branch": "main", "commit": "7c639042583c7bdc7ce2e37e5a0e0aa6d0659c6a" },
"cellular-automaton.nvim": { "branch": "main", "commit": "11aea08aa084f9d523b0142c2cd9441b8ede09ed" },
"cheatsheet.nvim": { "branch": "master", "commit": "8ee4d76b6f902c4017dc28eddd79d925dfc55066" },
"cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" },
"cmake-tools.nvim": { "branch": "master", "commit": "53bc5261e1e0b0d28be465d2b2b07a6f0646e1eb" },
"cmp-async-path": { "branch": "main", "commit": "9d581eec5acf812316913565c135b0d1ee2c9a71" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" },
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
"cmake-tools.nvim": { "branch": "master", "commit": "4e134ed5532e5fc3c0331d1b38b7acaa4bb31894" },
"cmp-conventionalcommits": { "branch": "master", "commit": "a4dfacf0601130b7f8afa7c948d735c27802fb7f" },
"cmp-dbee": { "branch": "main", "commit": "1650f67b9bf43c029fc37570665ca895a33cdf5a" },
"cmp-dotenv": { "branch": "main", "commit": "4dd53aab60982f1f75848aec5e6214986263325e" },
"cmp-git": { "branch": "main", "commit": "ec049036e354ed8ed0215f2427112882e1ea7051" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
"cmp-pypi": { "branch": "main", "commit": "a73411e5935caa23c6feab34980bb435deadd482" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"code-playground.nvim": { "branch": "main", "commit": "7b257911268ecf7ee11d6fe806193bda2c889e86" },
"codeium.nvim": { "branch": "main", "commit": "d3b88eb3aa1de6da33d325c196b8a41da2bcc825" },
"conform.nvim": { "branch": "master", "commit": "f4e8837878fc5712d053ba3091a73d27d96a09e2" },
"copilot-cmp": { "branch": "master", "commit": "15fc12af3d0109fa76b60b5cffa1373697e261d1" },
"conform.nvim": { "branch": "master", "commit": "339b3e4519ec49312d34fcfa275aa15bfaa67025" },
"crates.nvim": { "branch": "main", "commit": "1c924d5a9ea3496c4e1a02d0d51388ba809f8468" },
"cratesearch.nvim": { "branch": "master", "commit": "9d09625d017f6b2e116503f935bc6862961313fa" },
"curl.nvim": { "branch": "main", "commit": "6b64f67cf033b12b4e8249afe03def55ffc9b6cb" },
"curl.nvim": { "branch": "main", "commit": "fe07677a2a24bc8793b90fa2c0da626ea6c9e47d" },
"darkplus.nvim": { "branch": "master", "commit": "c7fff5ce62406121fc6c9e4746f118b2b2499c4c" },
"darkvoid.nvim": { "branch": "master", "commit": "45be993a5617e05811b6b293c05e6aded7003cc9" },
"decisive.nvim": { "branch": "main", "commit": "a7251adebccbc9c899cff39a524b20d06e2b78b5" },
"demicolon.nvim": { "branch": "main", "commit": "ee6e3008c7e70abe3f58103dde49145699700fc5" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dracula.nvim": { "branch": "main", "commit": "515acae4fd294fcefa5b15237a333c2606e958d1" },
"flow.nvim": { "branch": "main", "commit": "9005b613fc31d8334db2f1687c594f0b7e29823d" },
"flow.nvim": { "branch": "main", "commit": "e1791cf20969e07e52e44d1f3e40bcfda2521e6a" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"garbage-day.nvim": { "branch": "main", "commit": "750ef08ae6031ee3683014c5349144340c08ead6" },
"git-worktree.nvim": { "branch": "master", "commit": "f247308e68dab9f1133759b05d944569ad054546" },
@ -52,11 +45,12 @@
"in-and-out.nvim": { "branch": "master", "commit": "ab24cafadc3418dffb0c7e9b0621cff60b9ac551" },
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
"inlay-hint.nvim": { "branch": "main", "commit": "eb5f0579537db271dfedd7f38460cdacb238176f" },
"inlay-hints.nvim": { "branch": "master", "commit": "af84dee42cd118af6d592b06c1c0e45d6432a6c0" },
"inlay-hints.nvim": { "branch": "master", "commit": "3259b54f3b954b4d8260f3ee49ceabe978ea5636" },
"jq.nvim": { "branch": "main", "commit": "3a736044a9ff4d2b39919c43e66c8148ce85b6a5" },
"kanagawa.nvim": { "branch": "master", "commit": "ad3dddecd606746374ba4807324a08331dfca23c" },
"kanagawa.nvim": { "branch": "master", "commit": "2d54b56242a6f03c74864d118d61afa1acb5918e" },
"lackluster.nvim": { "branch": "main", "commit": "6d206a3af7dd2e8389eecebab858e7d97813fc0c" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"lazydev.nvim": { "branch": "main", "commit": "8620f82ee3f59ff2187647167b6b47387a13a018" },
"lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" },
"lualine-lsp-progress": { "branch": "master", "commit": "56842d097245a08d77912edf5f2a69ba29f275d7" },
"lualine-lsp-status": { "branch": "main", "commit": "1218d51d4d0b8881a598a77e5d9f334ac31c6cc7" },
@ -69,9 +63,9 @@
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"melange.nvim": { "branch": "master", "commit": "9252c78c7bffd3126b0c9e47e51e0b5211acffb1" },
"neoconf.nvim": { "branch": "main", "commit": "a9562ad062a1611a10cc81815b220a4450fb2cad" },
"mini.icons": { "branch": "main", "commit": "44c0160526f7ae17ca8e8eab9ab235d047fcf7a6" },
"neoconf.nvim": { "branch": "main", "commit": "427d64540ef2a3f4d758106a49a6aadfe2bd50b2" },
"neocord": { "branch": "main", "commit": "4d55d8dab2d5f2f272192add7a2c21982039c699" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"neogen": { "branch": "main", "commit": "dc50715c009f89b8111197fd2f282f6042daa7ea" },
"neogit": { "branch": "master", "commit": "43fa47fb61773b0d90a78ebc2521ea8faaeebd86" },
"neorg": { "branch": "main", "commit": "81ee90cb2d72ac43bfadb7dd276646f34c8f85be" },
@ -86,27 +80,26 @@
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
"nvim-cmp-lsp-rs": { "branch": "main", "commit": "57f29333e6d2b655d5b0edb999b0006d49fde0ca" },
"nvim-colorizer.lua": { "branch": "master", "commit": "4acf88d31b3a7a1a7f31e9c30bf2b23c6313abdb" },
"nvim-dap": { "branch": "master", "commit": "04ce47fc5a6ef2b717f33c320fc003091cebac40" },
"nvim-colorizer.lua": { "branch": "master", "commit": "b8ed35bf2c5c350ee84699adb2f797a453d60c5f" },
"nvim-dap": { "branch": "master", "commit": "665d3569a86395fe0dab85efbdb26d7d2ee57e49" },
"nvim-dap-python": { "branch": "master", "commit": "34282820bb713b9a5fdb120ae8dd85c2b3f49b51" },
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" },
"nvim-dbee": { "branch": "master", "commit": "21d2cc0844a16262bb6ea93ab3d0a0f20bd87853" },
"nvim-lint": { "branch": "master", "commit": "1fea92f1d9908eaa5eb8bafe08b4293d7aadaa55" },
"nvim-lspconfig": { "branch": "master", "commit": "040001d85e9190a904d0e35ef5774633e14d8475" },
"nvim-lspconfig": { "branch": "master", "commit": "c580f34bc5fdca8aaf737a9ab8a5d775cb940e57" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-silicon": { "branch": "main", "commit": "9fe6001dc8cad4d9c53bcfc8649e3dc76ffa169c" },
"nvim-surround": { "branch": "main", "commit": "9f0cb495f25bff32c936062d85046fbda0c43517" },
"nvim-treesitter": { "branch": "master", "commit": "2405274937718d520a40e03df92030dca6b4f0fd" },
"nvim-treesitter-context": { "branch": "master", "commit": "8fd989b6b457a448606b4a2e51f9161700f609a7" },
"nvim-treesitter": { "branch": "master", "commit": "50947387c20ec3fb8c30b8c1c1a1c39f68deb970" },
"nvim-treesitter-context": { "branch": "master", "commit": "2bcf700b59bc92850ca83a1c02e86ba832e0fae0" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" },
"nvim-ts-autotag": { "branch": "main", "commit": "1cca23c9da708047922d3895a71032bc0449c52d" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
"nvim-ufo": { "branch": "main", "commit": "270ca542dae992ffe40274718c63645217ebc8bf" },
"nvim-web-devicons": { "branch": "master", "commit": "0eb18da56e2ba6ba24de7130a12bcc4e31ad11cb" },
"nvim-web-devicons": { "branch": "master", "commit": "15c7d0f616ebf88960ce5c4221828f62789d36d9" },
"ohne-accidents": { "branch": "main", "commit": "832b942a928e74b537a2526eacc6285e26af9589" },
"oil.nvim": { "branch": "master", "commit": "dba037598843973b8c54bc5ce0318db4a0da439d" },
"oil.nvim": { "branch": "master", "commit": "ba858b662599eab8ef1cba9ab745afded99cb180" },
"onedark.nvim": { "branch": "master", "commit": "67a74c275d1116d575ab25485d1bfa6b2a9c38a6" },
"otter.nvim": { "branch": "main", "commit": "7edd39c920f7a28ac711a7c658a7cfdfb804bc82" },
"pathlib.nvim": { "branch": "main", "commit": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1" },
@ -127,17 +120,18 @@
"tagbar": { "branch": "master", "commit": "5e090da54bf999c657608b6c8ec841ef968d923d" },
"tailwind-fold.nvim": { "branch": "main", "commit": "30b8c04eec28628fbe554fb4f3a26984c4455176" },
"telescope-bibtex.nvim": { "branch": "master", "commit": "289a6f86ebec06e8ae1590533b732b9981d84900" },
"telescope-frecency.nvim": { "branch": "master", "commit": "a358728043a429d69ecfb317937df66f7cec40d5" },
"telescope-frecency.nvim": { "branch": "master", "commit": "77829eda3451ef81200b9c61696af0d64372ea85" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
"telescope-git-diffs.nvim": { "branch": "main", "commit": "b8e5c9e13b9e27f8ccfd14430d04739b9996ae76" },
"telescope-heading.nvim": { "branch": "main", "commit": "e85c0f69cb64048f56e76548dcb2f10277576df9" },
"telescope-import.nvim": { "branch": "main", "commit": "6ccc0ad05b2906e04c5ba415a7f973229efc6dbc" },
"telescope-import.nvim": { "branch": "main", "commit": "6fd69447679a99b463025e7f2f787e8b185dd740" },
"telescope-lazy.nvim": { "branch": "main", "commit": "810f7859c98e88b9c4e45de16cb5317207c9b3e8" },
"telescope-luasnip.nvim": { "branch": "master", "commit": "07a2a2936a7557404c782dba021ac0a03165b343" },
"telescope-media-files.nvim": { "branch": "master", "commit": "0826c7a730bc4d36068f7c85cf4c5b3fd9fb570a" },
"telescope-software-licenses.nvim": { "branch": "master", "commit": "fb5fc33b6afc994756e2f372423c365bf66f2256" },
"telescope-symbols.nvim": { "branch": "master", "commit": "a6d0127a53d39b9fc2af75bd169d288166118aec" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"tmux-compile.nvim": { "branch": "main", "commit": "7513d0c8780d1c92afa79a4f8370adeb7aba56cb" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"tokyonight.nvim": { "branch": "main", "commit": "45d22cf0e1b93476d3b6d362d720412b3d34465c" },
"tree-sitter-bruno": { "branch": "main", "commit": "5f35d5970be9e583eabdd1c22911953180729f84" },

140
lua/plugins/blink.lua Normal file
View File

@ -0,0 +1,140 @@
return {
{
"saghen/blink.cmp",
dependencies = {
"folke/lazydev.nvim",
"echasnovski/mini.icons",
"L3MON4D3/LuaSnip",
"Saecki/crates.nvim",
"davidsierradz/cmp-conventionalcommits",
"petertriho/cmp-git", -- TODO: make this work
"mikavilpas/blink-ripgrep.nvim",
{
"MattiasMTS/cmp-dbee",
dependencies = {
{ "kndndrj/nvim-dbee" },
},
ft = { "sql", "mysql", "plsql" },
opts = {},
},
},
version = "*",
-- build = "cargo build --release", -- build from source
opts = {
-- 'default' for mappings similar to built-in completion
-- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept
-- See the full "keymap" documentation for information on defining your own keymap.
keymap = {
preset = "default",
["<C-e>"] = { "hide", "show", "fallback" },
["<cr>"] = { "select_and_accept", "fallback" },
["<C-u>"] = { "scroll_documentation_up", "fallback" },
["<C-d>"] = { "scroll_documentation_down", "fallback" },
["<C-g>"] = {
function()
require("blink-cmp").show({ sources = { "ripgrep" } })
end,
},
["<Tab>"] = {},
["<S-Tab>"] = {},
},
appearance = {
use_nvim_cmp_as_default = true,
nerd_font_variant = "mono",
},
-- Default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend`
sources = {
default = { "lazydev", "crates", "lsp", "path", "luasnip", "buffer", "dbee" },
providers = {
lazydev = {
name = "LazyDev",
module = "lazydev.integrations.blink",
score_offset = 100,
},
crates = {
name = "crates",
module = "blink.compat.source",
score_offset = 10,
},
git = {
name = "git",
module = "blink.compat.source",
score_offset = 10,
},
dbee = {
name = "cmp-dbee",
module = "blink.compat.source",
score_offset = 50,
},
ripgrep = {
module = "blink-ripgrep",
name = "Ripgrep",
opts = {
prefix_min_len = 3,
context_size = 5,
max_filesize = "1M",
project_root_marker = { ".git", "package.json", ".root" },
search_casing = "--smart-case",
additional_rg_options = {},
fallback_to_regex_highlighting = true,
},
},
},
},
completion = {
documentation = { window = { border = "single" }, auto_show = true },
ghost_text = { enabled = true },
menu = {
border = "single",
auto_show = function(ctx)
return ctx.mode ~= "cmdline"
end,
draw = {
components = {
kind_icon = {
ellipsis = false,
text = function(ctx)
local kind_icon, _, _ = require("mini.icons").get("lsp", ctx.kind)
return kind_icon
end,
-- Optionally, you may also use the highlights from mini.icons
highlight = function(ctx)
local _, hl, _ = require("mini.icons").get("lsp", ctx.kind)
return hl
end,
},
},
},
},
},
signature = { enabled = true, window = { border = "single" } },
snippets = {
expand = function(snippet)
require("luasnip").lsp_expand(snippet)
end,
active = function(filter)
if filter and filter.direction then
return require("luasnip").jumpable(filter.direction)
end
return require("luasnip").in_snippet()
end,
jump = function(direction)
require("luasnip").jump(direction)
end,
},
},
opts_extend = { "sources.default" },
},
{
"saghen/blink.compat",
version = "*",
lazy = true,
opts = {},
},
}

View File

@ -7,7 +7,7 @@ return {
require("cmp_git").setup({
-- defaults
filetypes = { "gitcommit", "octo", "NeogitCommitMessage" },
filetypes = { "gitcommit", "octo" },
remotes = { "upstream", "origin" }, -- in order of most to least prioritized
enableRemoteUrlRewrites = false, -- enable git url rewrites, see https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf
git = {
@ -41,7 +41,9 @@ return {
},
},
gitlab = {
hosts = {}, -- list of private instances of gitlab
hosts = {
"git.modulation.lv",
}, -- list of private instances of gitlab
issues = {
limit = 100,
state = "opened", -- opened, closed, all

View File

@ -1,164 +0,0 @@
return {
"hrsh7th/nvim-cmp",
event = { "InsertEnter", "CmdlineEnter" },
dependencies = {
"hrsh7th/cmp-buffer", -- buffer completions
"hrsh7th/cmp-cmdline",
"FelipeLema/cmp-async-path", -- path completions
"hrsh7th/cmp-nvim-lua",
"hrsh7th/cmp-nvim-lsp",
{ "Saecki/crates.nvim", event = { "BufRead Cargo.toml" } },
{
"vrslev/cmp-pypi",
dependencies = { "nvim-lua/plenary.nvim" },
event = { "BufRead pyproject.toml" },
},
"SergioRibera/cmp-dotenv",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-calc",
"Exafunction/codeium.nvim",
"zbirenbaum/copilot-cmp",
"petertriho/cmp-git",
"davidsierradz/cmp-conventionalcommits",
"supermaven-inc/supermaven-nvim",
"zjp-CN/nvim-cmp-lsp-rs",
{
"MattiasMTS/cmp-dbee",
dependencies = {
{ "kndndrj/nvim-dbee" },
},
ft = { "sql", "mysql", "plsql" },
opts = {},
},
},
opts = function(_, opts)
local cmp = require("cmp")
local luasnip = require("luasnip")
local cmp_lsp_rs = require("cmp_lsp_rs")
local comparators = cmp_lsp_rs.comparators
local compare = require("cmp").config.compare
local kind_icons = {
Text = "󰉿",
Method = "󰆧",
Function = "󰊕",
Constructor = "",
Field = "󰜢",
Variable = "󰀫",
Class = "󰠱",
Interface = "",
Module = "",
Property = "󰜢",
Unit = "󰑭",
Value = "󰎠",
Enum = "",
Keyword = "󰌋",
Snippet = "",
Color = "󰏘",
File = "󰈙",
Reference = "󰈇",
Folder = "󰉋",
EnumMember = "",
Constant = "󰏿",
Struct = "󰙅",
Event = "",
Operator = "󰆕",
TypeParameter = "",
Copilot = "",
Codeium = "",
Supermaven = "",
}
opts = {
mapping = {
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-u>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
-- Accept currently selected item. If none selected, `select` first item.
-- Set `select` to `false` to only confirm explicitly selected items.
["<CR>"] = cmp.mapping.confirm({ select = true }),
},
sources = {
{ name = "nvim_lua" },
{ name = "nvim_lsp" },
{ name = "crates" },
{ name = "async_path" },
{ name = "cmp-dbee" },
{ name = "buffer", keyword_length = 4 },
{ name = "luasnip" },
{ name = "neorg" },
{ name = "pypi" },
{ name = "dotenv" },
{ name = "calc" },
{ name = "git" },
{ name = "conventionalcommits" },
{ name = "supermaven" },
-- { name = "copilot" },
-- { name = "codeium" },
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
formatting = {
fields = { "abbr", "kind", "menu" },
format = function(entry, vim_item)
vim_item.kind = kind_icons[vim_item.kind]
vim_item.menu = ({
git = "[git]",
conventionalcommits = "[CC]",
calc = "[calc]",
nvim_lsp = "[LSP]",
nvim_lua = "[lua]",
async_path = "[path]",
codeium = "[codeium]",
copilot = "[copilot]",
luasnip = "[snip]",
neorg = "[neorg]",
crates = "[crates]",
pypi = "[pypi]",
dotenv = "[env]",
buffer = "[buf]",
supermaven = "[AI]",
["cmp-dbee"] = "[DB]",
})[entry.source.name]
return vim_item
end,
expandable_indicator = true,
},
experimental = {
ghost_text = true,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
},
sorting = {
comparators = {
compare.exact,
compare.score,
-- comparators.inherent_import_inscope,
comparators.inscope_inherent_import,
comparators.sort_by_label_but_underscore_last,
},
},
}
for _, source in ipairs(opts.sources) do
cmp_lsp_rs.filter_out.entry_filter(source)
end
return opts
end,
config = function(_, opts)
require("cmp").setup(opts)
end,
}

View File

@ -1,7 +1,7 @@
return {
{
"folke/tokyonight.nvim",
--[[ lazy = false,
lazy = false,
priority = 1000,
opts = {
style = "night",
@ -15,8 +15,8 @@ return {
},
config = function(_, opts)
require("tokyonight").setup(opts)
vim.cmd.colorscheme("tokyonight")
end, ]]
-- vim.cmd.colorscheme("tokyonight")
end,
},
{ "lunarvim/darkplus.nvim" },
{ "catppuccin/nvim", name = "catppuccin.nvim" },

View File

@ -13,6 +13,11 @@ return {
},
},
opts = {
completion = {
cmp = {
enabled = true,
},
},
smart_insert = true,
insert_closing_quote = true,
autoload = true,

View File

@ -5,7 +5,6 @@ return {
"williamboman/mason.nvim",
"rcarriga/nvim-dap-ui",
"mfussenegger/nvim-dap",
-- { "simrat39/rust-tools.nvim", ft = "rust" },
"nvim-neotest/nvim-nio",
{ "mfussenegger/nvim-dap-python", ft = "python" },
"theHamsta/nvim-dap-virtual-text",

View File

@ -5,17 +5,13 @@ return {
},
keys = {
{
"<leader>od",
function()
require("dbee").toggle()
end,
require("dbee").toggle,
desc = "Toggle Dbee",
},
},
cmd = "Dbee",
cmd = { "Dbee" },
build = function()
-- go install github.com/kndndrj/nvim-dbee/dbee@latest
require("dbee").install("go")
end,
opts = {

View File

@ -1,11 +0,0 @@
return {
"zeioth/garbage-day.nvim",
dependencies = { "neovim/nvim-lspconfig" },
event = "VeryLazy",
opts = {
aggressive_mode = false,
excluded_lsp_clients = { "rust_analyzer" },
grace_period = 60 * 15,
wakeup_delay = 0,
},
}

11
lua/plugins/lazydev.lua Normal file
View File

@ -0,0 +1,11 @@
return {
"folke/lazydev.nvim",
ft = "lua", -- only load on lua files
opts = {
library = {
-- See the configuration section for more details
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
}

View File

@ -1,16 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.basedpyright.setup({
capabilities = capabilities,
basedpyright = {
analysis = {
autoSearchPaths = true,
diagnosticMode = "openFilesOnly",
useLibraryCodeForTypes = true,
},
},
})
end
return M

View File

@ -1,14 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.bashls.setup({
capabilities = capabilities,
filetypes = {
"sh",
"bash",
"zsh",
},
})
end
return M

View File

@ -1,21 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
capabilities = capabilities
lsp.clangd.setup({
capabilities = capabilities,
settings = {
clangd = {
InlayHints = {
Designators = true,
Enabled = true,
ParameterNames = true,
DeducedTypes = true,
},
fallbackFlags = { "-std=c++20" },
},
},
})
end
return M

View File

@ -1,20 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.emmet_ls.setup({
capabilities = capabilities,
filetypes = {
"html",
"htmldjango",
"typescriptreact",
"javascriptreact",
"css",
"sass",
"scss",
"less",
"eruby",
},
})
end
return M

View File

@ -1,20 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.gopls.setup({
capabilities = capabilities,
settings = {
hints = {
rangeVariableTypes = true,
parameterNames = true,
constantValues = true,
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
functionTypeParameters = true,
},
},
})
end
return M

View File

@ -1,17 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.html.setup({
capabilities = capabilities,
filetypes = {
"html",
"htmldjango",
"templ",
},
init_options = {
provideFormatter = false,
},
})
end
return M

View File

@ -1,45 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.lua_ls.setup({
capabilities = capabilities,
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = "LuaJIT",
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { "vim", "awesome", "client" },
},
-- workspace = {
-- Make the server aware of Neovim runtime files
-- library = vim.api.nvim_get_runtime_file("", true),
-- },
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
root_pattern = {
".stylua.toml",
".luarc.json",
".luarc.jsonc",
".luacheckrc",
"stylua.toml",
"selene.toml",
"selene.yml",
".git",
},
format = {
enable = false,
},
hint = {
enable = true,
},
},
},
})
end
return M

View File

@ -1,29 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.pylsp.setup({
capabilities = capabilities,
settings = {
pylsp = {
plugins = {
autopep8 = { enabled = false },
flake8 = { enabled = false },
pylint = { enabled = false },
yapf = { enabled = false },
pydocstyle = { enabled = false },
mccabe = { enabled = false },
rope_autoimport = { enabled = true },
rope_completion = {
enabled = true,
eager = true,
},
pycodestyle = {
maxLineLength = nil,
},
},
},
},
})
end
return M

View File

@ -1,17 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.pylyzer.setup({
capabilities = capabilities,
settings = {
python = {
diagnostics = true,
inlayHints = true,
smartCompletion = true,
checkOnType = true,
},
},
})
end
return M

View File

@ -1,32 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.texlab.setup({
capabilities = capabilities,
texlab = {
auxDirectory = ".",
bibtexFormatter = "texlab",
build = {
args = { "-pdf", "-interaction=nonstopmode", "-synctex=1", "%f" },
executable = "xelatex",
forwardSearchAfter = false,
onSave = false,
},
chktex = {
onEdit = false,
onOpenAndSave = false,
},
diagnosticsDelay = 0,
formatterLineLength = 120,
forwardSearch = {
args = {},
},
latexFormatter = "latexindent",
latexindent = {
modifyLineBreaks = false,
},
},
})
end
return M

View File

@ -1,14 +0,0 @@
local M = {}
M.setup = function(lsp, capabilities)
lsp.tinymist.setup({
capabilities = capabilities,
offset_encoding = "utf-8",
settings = {
exportPdf = "onType",
outputPath = "$root/target/$dir/$name",
},
})
end
return M

View File

@ -3,34 +3,43 @@ return {
dependencies = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"hrsh7th/cmp-nvim-lsp",
"folke/neodev.nvim",
"saghen/blink.cmp",
"nvim-telescope/telescope.nvim",
"folke/trouble.nvim",
"folke/neoconf.nvim",
"piersolenski/telescope-import.nvim",
"mrcjkb/rustaceanvim",
},
config = function()
opts = function()
return require("solo.lspconfig-opts")
end,
config = function(_, opts)
require("mason").setup()
local lsp = require("lspconfig")
local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities()
lsp_capabilities = vim.tbl_deep_extend("keep", lsp_capabilities, {
textDocument = {
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
},
},
})
local lspconfig = require("lspconfig")
local default_setup = function(server)
lsp[server].setup({
capabilities = lsp_capabilities,
local function extend_capabilities(capabilities)
return vim.tbl_deep_extend("keep", capabilities, {
textDocument = {
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
},
},
})
end
for server, config in pairs(opts.servers) do
local capabilities = require("blink.cmp").get_lsp_capabilities(config.capabilities)
config.capabilities = extend_capabilities(capabilities)
lspconfig[server].setup(config)
end
local default_setup = function(server)
local capabilities = require("blink.cmp").get_lsp_capabilities()
lspconfig[server].setup({
capabilities = extend_capabilities(capabilities),
})
end
vim.api.nvim_create_autocmd("LspAttach", {
desc = "LSP actions",
callback = function(event)
@ -43,6 +52,7 @@ return {
end
vim.keymap.set("n", keys, func, { buffer = event.buf, desc = desc })
end
local trouble = require("trouble")
nmap("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition")
@ -66,11 +76,9 @@ return {
nmap("<leader>lj", vim.diagnostic.goto_next, "Diagnostic Next")
nmap("<leader>lk", vim.diagnostic.goto_prev, "Diagnostic Prev")
nmap("]d", function()
local trouble = require("trouble")
trouble.next({ mode = "diagnostics", skip_groups = true, jump = true })
end, "LSP: Trouble Next")
nmap("[d", function()
local trouble = require("trouble")
trouble.prev({ mode = "diagnostics", skip_groups = true, jump = true })
end, "Trouble Prev")
vim.keymap.set(
@ -120,9 +128,6 @@ return {
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
border = "rounded",
})
local html_opts = {
filetypes = { "html", "htmldjango", "templ" },
}
require("mason-lspconfig").setup({
automatic_installation = true,
@ -139,46 +144,11 @@ return {
"lua_ls",
"tailwindcss",
"texlab",
-- "tinymist",
"tinymist",
"ts_ls",
},
handlers = {
default_setup,
clangd = function()
lsp_capabilities.offsetEncoding = { "utf-16" }
require("plugins.lsp.clangd").setup(lsp, lsp_capabilities)
end,
bashls = function()
require("plugins.lsp.bash").setup(lsp, lsp_capabilities)
end,
emmet_ls = function()
require("plugins.lsp.emmet").setup(lsp, lsp_capabilities)
end,
texlab = function()
require("plugins.lsp.tex").setup(lsp, lsp_capabilities)
end,
lua_ls = function()
require("plugins.lsp.lua").setup(lsp, lsp_capabilities)
end,
htmx = function()
lsp.htmx.setup(html_opts)
end,
pylyzer = function()
require("plugins.lsp.pylyzer").setup(lsp, lsp_capabilities)
end,
basedpyright = function()
require("plugins.lsp.basedpyright").setup(lsp, lsp_capabilities)
end,
jinja_lsp = function()
lsp.jinja_lsp.setup(html_opts)
end,
html = function()
require("plugins.lsp.html").setup(lsp, lsp_capabilities)
end,
tinymist = function()
require("plugins.lsp.tinymist").setup(lsp, lsp_capabilities)
end,
ts_ls = function() end,
},
})
end,

View File

@ -5,7 +5,7 @@ return {
version = "*",
dependencies = {
"rafamadriz/friendly-snippets", -- a bunch of snippets to use
"saadparwaiz1/cmp_luasnip",
-- "saadparwaiz1/cmp_luasnip",
},
opts = {},
config = function(_, opts)

View File

@ -1,27 +0,0 @@
return {
"folke/neodev.nvim",
dependencies = { "rcarriga/nvim-dap-ui" },
opts = {
library = {
enabled = true, -- when not enabled, neodev will not change any settings to the LSP server
-- these settings will be used for your Neovim config directory
runtime = true, -- runtime path
types = true, -- full signature, docs and completion of vim.api, vim.treesitter, vim.lsp and others
-- plugins = true, -- installed opt or start plugins in packpath
-- you can also specify the list of plugins to make available as a workspace library
plugins = { "nvim-treesitter", "plenary.nvim", "telescope.nvim", "nvim-dap-ui" },
},
setup_jsonls = true, -- configures jsonls to provide completion for project specific .luarc.json files
-- for your Neovim config directory, the config.library settings will be used as is
-- for plugin directories (root_dirs having a /lua directory), config.library.plugins will be disabled
-- for any other directory, config.library.enabled will be set to false
override = function(root_dir, options) end,
-- With lspconfig, Neodev will automatically setup your lua-language-server
-- If you disable this, then you have to set {before_init=require("neodev.lsp").before_init}
-- in your lsp start options
lspconfig = true,
-- much faster, but needs a recent built of lua-language-server
-- needs lua-language-server >= 3.6.0
pathStrict = true,
},
}

View File

@ -23,6 +23,7 @@ return {
fg = "NONE", -- The gui style to use for the fg highlight group.
bg = "BOLD", -- The gui style to use for the bg highlight group.
},
merge_keywords = true, -- when true, custom keywords will be merged with the defaults
-- highlighting of the line containing the todo comment
-- * before: highlights before the keyword (typically comment characters)

View File

@ -112,12 +112,12 @@ return {
["[M"] = "@function.outer",
["[]"] = "@class.outer",
},
-- goto_next = {
-- [']i'] = "@conditional.inner",
-- },
-- goto_previous = {
-- ['[i'] = "@conditional.inner",
-- }
goto_next = {
["]i"] = "@conditional.inner",
},
goto_previous = {
["[i"] = "@conditional.inner",
},
},
swap = {
enable = true,

View File

@ -1,7 +1,6 @@
return {
"folke/trouble.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
-- version = "*",
cmd = "Trouble",
keys = {
{

181
lua/solo/lspconfig-opts.lua Normal file
View File

@ -0,0 +1,181 @@
return {
servers = {
gopls = {
settings = {
hints = {
rangeVariableTypes = true,
parameterNames = true,
constantValues = true,
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
functionTypeParameters = true,
},
},
},
lua_ls = {
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = "LuaJIT",
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { "vim", "awesome", "client" },
},
-- workspace = {
-- Make the server aware of Neovim runtime files
-- library = vim.api.nvim_get_runtime_file("", true),
-- },
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
root_pattern = {
".stylua.toml",
".luarc.json",
".luarc.jsonc",
".luacheckrc",
"stylua.toml",
"selene.toml",
"selene.yml",
".git",
},
format = {
enable = false,
},
hint = {
enable = true,
},
},
},
},
clangd = {
capabilities = {
offsetEncoding = { "utf-16" },
},
settings = {
clangd = {
InlayHints = {
Designators = true,
Enabled = true,
ParameterNames = true,
DeducedTypes = true,
},
fallbackFlags = { "-std=c++20" },
},
},
},
bashls = {
filetypes = {
"sh",
"bash",
"zsh",
},
},
emmet_ls = {
filetypes = {
"html",
"htmldjango",
"typescriptreact",
"javascriptreact",
"css",
"sass",
"scss",
"less",
"eruby",
},
},
texlab = {
texlab = {
auxDirectory = ".",
bibtexFormatter = "texlab",
build = {
args = { "-pdf", "-interaction=nonstopmode", "-synctex=1", "%f" },
executable = "xelatex",
forwardSearchAfter = false,
onSave = false,
},
chktex = {
onEdit = false,
onOpenAndSave = false,
},
diagnosticsDelay = 0,
formatterLineLength = 120,
forwardSearch = {
args = {},
},
latexFormatter = "latexindent",
latexindent = {
modifyLineBreaks = false,
},
},
},
htmx = {
filetypes = { "html", "htmldjango", "templ" },
},
--[[ pylyzer = {
settings = {
python = {
diagnostics = true,
inlayHints = true,
smartCompletion = true,
checkOnType = true,
},
},
}, ]]
--[[ basedpyright = {
basedpyright = {
analysis = {
autoSearchPaths = true,
diagnosticMode = "openFilesOnly",
useLibraryCodeForTypes = true,
},
},
}, ]]
--[[ pylsp = {
settings = {
pylsp = {
plugins = {
autopep8 = { enabled = false },
flake8 = { enabled = false },
pylint = { enabled = false },
yapf = { enabled = false },
pydocstyle = { enabled = false },
mccabe = { enabled = false },
rope_autoimport = { enabled = true },
rope_completion = {
enabled = true,
eager = true,
},
pycodestyle = {
maxLineLength = nil,
},
},
},
},
}, ]]
jinja_lsp = {
filetypes = { "html", "htmldjango", "templ" },
},
html = {
filetypes = {
"html",
"htmldjango",
"templ",
},
init_options = {
provideFormatter = false,
},
},
tinymist = {
offset_encoding = "utf-8",
settings = {
exportPdf = "onType",
outputPath = "$root/target/$dir/$name",
},
},
ts_ls = {},
},
}

View File

@ -1,11 +1,11 @@
vim.cmd([[
aunmenu PopUp
anoremenu PopUp.Inspect <cmd>Inspect<cr>
amenu PopUp.-1- <cmd>Inspect<cr>
amenu PopUp.-1- <NOP>
anoremenu PopUp.Definition <cmd>lua vim.lsp.buf.definition()<cr>
anoremenu PopUp.References <cmd>Telescope lsp_references<cr>
nnoremenu PopUp.Back <C-t>
amenu PopUp.-2- <cmd>Inspect<cr>
amenu PopUp.-2- <NOP>
amenu PopUp.URL gx
]])
@ -27,12 +27,12 @@ vim.api.nvim_create_autocmd("MenuPopup", {
amenu enable PopUp.References
]])
end
local urls = require("vim.ui")._get_urls()
if vim.startswith(urls[1], "http") then
vim.cmd([[
amenu disable Popup.-2-
amentu enable PopUp.URL
]])
end
-- local urls = require("vim.ui")._get_urls()
-- if vim.startswith(urls[1], "http") then
-- vim.cmd([[
-- amenu disable Popup.-2-
-- amentu enable PopUp.URL
-- ]])
-- end
end,
})