feat(nvim): fix completion with blink
This commit is contained in:
@@ -17,3 +17,8 @@ vim.keymap.set("n", "N", "Nzzzv")
|
|||||||
-- Move block on visual mode
|
-- Move block on visual mode
|
||||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||||
|
|
||||||
|
-- Diagnostic (erreurs LSP)
|
||||||
|
vim.keymap.set('n', 'gl', vim.diagnostic.open_float, { desc = 'Show diagnostic' })
|
||||||
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Previous diagnostic' })
|
||||||
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Next diagnostic' })
|
||||||
|
|||||||
@@ -1,77 +1,22 @@
|
|||||||
-- return {
|
|
||||||
-- 'hrsh7th/nvim-cmp',
|
|
||||||
-- dependencies = {
|
|
||||||
-- 'neovim/nvim-lspconfig',
|
|
||||||
-- 'hrsh7th/cmp-nvim-lsp',
|
|
||||||
-- 'hrsh7th/cmp-buffer',
|
|
||||||
-- 'hrsh7th/cmp-path',
|
|
||||||
-- 'hrsh7th/cmp-cmdline',
|
|
||||||
-- 'hrsh7th/cmp-vsnip',
|
|
||||||
-- 'hrsh7th/vim-vsnip',
|
|
||||||
-- },
|
|
||||||
-- config = function ()
|
|
||||||
-- local cmp = require'cmp'
|
|
||||||
-- cmp.setup({
|
|
||||||
-- snippet = {
|
|
||||||
-- expand = function(args)
|
|
||||||
-- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
-- window = {
|
|
||||||
-- completion = cmp.config.window.bordered(),
|
|
||||||
-- documentation = cmp.config.window.bordered(),
|
|
||||||
-- },
|
|
||||||
-- sources = cmp.config.sources({
|
|
||||||
-- { name = 'nvim_lsp' },
|
|
||||||
-- { name = 'vsnip' }, -- For vsnip users.
|
|
||||||
-- { name = 'path' },
|
|
||||||
-- {
|
|
||||||
-- name = 'buffer',
|
|
||||||
-- option = {
|
|
||||||
-- keyword_length = 3,
|
|
||||||
-- get_bufnrs = function()
|
|
||||||
-- return vim.api.nvim_list_bufs()
|
|
||||||
-- end
|
|
||||||
-- }
|
|
||||||
-- },
|
|
||||||
-- }, {
|
|
||||||
-- { name = 'buffer' },
|
|
||||||
-- })
|
|
||||||
-- })
|
|
||||||
--
|
|
||||||
-- -- Set configuration for specific filetype.
|
|
||||||
-- cmp.setup.filetype('gitcommit', {
|
|
||||||
-- sources = cmp.config.sources({
|
|
||||||
-- { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
|
|
||||||
-- }, {
|
|
||||||
-- { name = 'buffer' },
|
|
||||||
-- })
|
|
||||||
-- })
|
|
||||||
--
|
|
||||||
-- -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
|
||||||
-- cmp.setup.cmdline({ '/', '?' }, {
|
|
||||||
-- mapping = cmp.mapping.preset.cmdline(),
|
|
||||||
-- sources = {
|
|
||||||
-- { name = 'buffer' }
|
|
||||||
-- }
|
|
||||||
-- })
|
|
||||||
--
|
|
||||||
-- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
|
||||||
-- cmp.setup.cmdline(':', {
|
|
||||||
-- mapping = cmp.mapping.preset.cmdline(),
|
|
||||||
-- sources = cmp.config.sources({
|
|
||||||
-- { name = 'path' }
|
|
||||||
-- }, {
|
|
||||||
-- { name = 'cmdline' }
|
|
||||||
-- })
|
|
||||||
-- })
|
|
||||||
-- end
|
|
||||||
-- }
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"saghen/blink.cmp",
|
"saghen/blink.cmp",
|
||||||
-- optional: provides snippets for the snippet source
|
-- optional: provides snippets for the snippet source
|
||||||
dependencies = { "rafamadriz/friendly-snippets" },
|
dependencies = {
|
||||||
|
"rafamadriz/friendly-snippets",
|
||||||
|
{
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
build = "make install_jsregexp",
|
||||||
|
config = function()
|
||||||
|
require("luasnip").setup({
|
||||||
|
store_selection_keys = "<Tab>",
|
||||||
|
})
|
||||||
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
|
require("luasnip.loaders.from_lua").lazy_load({
|
||||||
|
paths = { "~/.config/nvim/snippets" },
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
-- use a release tag to download pre-built binaries
|
-- use a release tag to download pre-built binaries
|
||||||
version = "1.*",
|
version = "1.*",
|
||||||
@@ -106,15 +51,28 @@ return {
|
|||||||
-- (Default) Only show the documentation popup when manually triggered
|
-- (Default) Only show the documentation popup when manually triggered
|
||||||
completion = {
|
completion = {
|
||||||
documentation = {
|
documentation = {
|
||||||
auto_show = false,
|
auto_show = true,
|
||||||
auto_show_delay_ms = 200,
|
auto_show_delay_ms = 200,
|
||||||
},
|
},
|
||||||
|
ghost_text = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Default list of enabled providers defined so that you can extend it
|
-- Default list of enabled providers defined so that you can extend it
|
||||||
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
||||||
sources = {
|
sources = {
|
||||||
default = { "lsp", "path", "snippets", "buffer" },
|
default = { "lsp", "path", "snippets", "buffer" },
|
||||||
|
providers = {
|
||||||
|
buffer = {
|
||||||
|
min_keyword_length = 3,
|
||||||
|
score_offset = -10,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
snippets = {
|
||||||
|
preset = "luasnip",
|
||||||
},
|
},
|
||||||
|
|
||||||
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
|
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"Begin/End environment": {
|
|
||||||
"prefix": "beg",
|
|
||||||
"body": [
|
|
||||||
"\\begin{${1:environment}}",
|
|
||||||
"\t$0",
|
|
||||||
"\\end{$1}"
|
|
||||||
],
|
|
||||||
"description": "Begin/End environment"
|
|
||||||
},
|
|
||||||
"Multicols": {
|
|
||||||
"prefix": "multicols",
|
|
||||||
"body": [
|
|
||||||
"\\begin{multicols}{${1:2}}",
|
|
||||||
"\t$0",
|
|
||||||
"\\end{multicols}"
|
|
||||||
],
|
|
||||||
"description": "Multicols environment"
|
|
||||||
},
|
|
||||||
"Minipage": {
|
|
||||||
"prefix": "minipage",
|
|
||||||
"body": [
|
|
||||||
"\\begin{minipage}{${1:0.5}\\textwidth}",
|
|
||||||
"\t$0",
|
|
||||||
"\\end{minipage}"
|
|
||||||
],
|
|
||||||
"description": "Minipage environment"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,21 +1,57 @@
|
|||||||
local ls = require("luasnip")
|
local ls = require("luasnip")
|
||||||
local s = ls.snippet
|
local s = ls.snippet
|
||||||
|
local sn = ls.snippet_node
|
||||||
local t = ls.text_node
|
local t = ls.text_node
|
||||||
local i = ls.insert_node
|
local i = ls.insert_node
|
||||||
local f = ls.function_node
|
local f = ls.function_node
|
||||||
|
local d = ls.dynamic_node
|
||||||
|
|
||||||
return {
|
return {
|
||||||
-- Auto-expand: tape "beg" + TAB
|
-- Minipage avec texte sélectionné
|
||||||
s({ trig = "beg", dscr = "Begin/End environment" }, {
|
s({ trig = "minipage", dscr = "Minipage environment" }, {
|
||||||
t("\\begin{"),
|
t("\\begin{minipage}{"),
|
||||||
i(1, "environment"),
|
i(1, "0.5"),
|
||||||
|
t("\\textwidth}"),
|
||||||
|
t({ "", "\t" }),
|
||||||
|
d(2, function(_, snip)
|
||||||
|
return sn(nil, i(1, snip.env.LS_SELECT_RAW or ""))
|
||||||
|
end),
|
||||||
|
t({ "", "\\end{minipage}" }),
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- Multicols avec texte sélectionné
|
||||||
|
s({ trig = "multicols", dscr = "Multicols environment" }, {
|
||||||
|
t("\\begin{multicols}{"),
|
||||||
|
i(1, "2"),
|
||||||
t("}"),
|
t("}"),
|
||||||
t({ "", "\t" }),
|
t({ "", "\t" }),
|
||||||
i(0),
|
d(2, function(_, snip)
|
||||||
t({ "", "\\end{" }),
|
return sn(nil, i(1, snip.env.LS_SELECT_RAW or ""))
|
||||||
|
end),
|
||||||
|
t({ "", "\\end{multicols}" }),
|
||||||
|
}),
|
||||||
|
|
||||||
|
-- Deux minipages côte à côte
|
||||||
|
s({ trig = "minipage2", dscr = "Two minipages side by side" }, {
|
||||||
|
t("\\begin{minipage}{"),
|
||||||
|
i(1, "0.48"),
|
||||||
|
t("\\textwidth}"),
|
||||||
|
t({ "", "\t" }),
|
||||||
|
i(2),
|
||||||
|
t({ "", "\\end{minipage}" }),
|
||||||
|
t({ "", "\\hfill" }),
|
||||||
|
t({ "", "\\begin{minipage}{" }),
|
||||||
f(function(args)
|
f(function(args)
|
||||||
return args[1][1]
|
local width = tonumber(args[1][1])
|
||||||
|
if width then
|
||||||
|
return tostring(1 - width)
|
||||||
|
else
|
||||||
|
return "0.48"
|
||||||
|
end
|
||||||
end, { 1 }),
|
end, { 1 }),
|
||||||
t("}"),
|
t("\\textwidth}"),
|
||||||
|
t({ "", "\t" }),
|
||||||
|
i(0),
|
||||||
|
t({ "", "\\end{minipage}" }),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user