remove neovim custom completion

This commit is contained in:
julien committed 2026-10-15 22:36:05 +02:00
1 parent bd9ab04a83
commit 46d7269108
1 file changed
+11 -66
+11 -66
View File
@@ -2,7 +2,7 @@
> Nécessite `sbopkg`.
Neovim est un éditeur de texte modal dérivé de Vim. La configuration ci-dessous reste volontairement simple : Telescope est utilisé pour naviguer entre les fichiers et les buffers, `ripgrep` pour rechercher dans le projet, Grug Far pour rechercher et remplacer dans plusieurs fichiers, `nvim-autopairs` pour fermer automatiquement les paires, et le client LSP intégré de Neovim pour Ruby, la complétion et les signatures de méthodes.
Neovim est un éditeur de texte modal dérivé de Vim. La configuration ci-dessous reste volontairement simple : Telescope est utilisé pour naviguer entre les fichiers et les buffers, `ripgrep` pour rechercher dans le projet, Grug Far pour rechercher et remplacer dans plusieurs fichiers, `nvim-autopairs` pour fermer automatiquement les paires, et le client LSP intégré de Neovim pour Ruby, les diagnostics, la navigation et les signatures de méthodes.
## Installation
@@ -82,13 +82,16 @@ vim.opt.splitright = true
vim.opt.splitbelow = true
vim.opt.shortmess:append("I")
vim.opt.winborder = "rounded"
vim.opt.pumborder = "rounded"
vim.cmd.colorscheme("retrobox")
-- Apparence homogène des menus et fenêtres flottantes.
vim.api.nvim_set_hl(0, "NormalFloat", { link = "Pmenu" })
vim.api.nvim_set_hl(0, "FloatBorder", { link = "PmenuBorder" })
vim.api.nvim_set_hl(0, "TelescopeNormal", { link = "Pmenu" })
vim.api.nvim_set_hl(0, "TelescopeBorder", { link = "PmenuBorder" })
-- Telescope reprend l'apparence des fenêtres flottantes.
vim.api.nvim_set_hl(0, "TelescopeNormal", { link = "NormalFloat" })
vim.api.nvim_set_hl(0, "TelescopeBorder", { link = "FloatBorder" })
vim.api.nvim_set_hl(0, "TelescopeSelection", { link = "PmenuSel" })
-- Indentation
@@ -121,11 +124,7 @@ vim.pack.add({
})
-- Auto-fermeture des paires
local npairs = require("nvim-autopairs")
npairs.setup({
map_cr = false,
})
require("nvim-autopairs").setup()
-- Telescope
local builtin = require("telescope.builtin")
@@ -185,16 +184,10 @@ vim.api.nvim_create_autocmd("VimEnter", {
})
-- Ruby LSP
local capabilities = vim.lsp.protocol.make_client_capabilities()
-- Active la surveillance des fichiers par Ruby LSP sous Linux.
capabilities.workspace.didChangeWatchedFiles.dynamicRegistration = true
vim.lsp.config("ruby_lsp", {
cmd = { "ruby-lsp" },
filetypes = { "ruby" },
root_markers = { "Gemfile", ".git" },
capabilities = capabilities,
-- Contournement temporaire pour Ruby LSP 0.26.11 : dans un projet Ruby
-- plat, Ruby Indexer peut construire le motif {}/**/*.rb et indexer un
-- même fichier sous deux chemins différents. Cette exclusion neutralise
@@ -208,57 +201,11 @@ vim.lsp.config("ruby_lsp", {
vim.lsp.enable("ruby_lsp")
-- Complétion Ruby LSP
vim.opt.completeopt = { "menuone", "noselect" }
vim.opt.pumheight = 8
vim.opt.pumwidth = 36
vim.opt.pummaxwidth = 72
vim.opt.pumborder = "rounded"
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(event)
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client:supports_method("textDocument/completion") then
vim.lsp.completion.enable(true, client.id, event.buf)
end
end,
})
vim.api.nvim_create_autocmd("InsertCharPre", {
callback = function()
vim.lsp.completion.get()
end,
})
vim.keymap.set("i", "<Tab>", function()
if vim.fn.pumvisible() == 1 then
local selected = vim.fn.complete_info({ "selected" }).selected
if selected == -1 then
return "<C-n><C-y>"
end
return "<C-y>"
end
return "<Tab>"
end, { expr = true })
vim.keymap.set("i", "<CR>", function()
if vim.fn.pumvisible() == 1 then
local selected = vim.fn.complete_info({ "selected" }).selected
if selected ~= -1 then
return npairs.esc("<C-y>")
end
end
return npairs.autopairs_cr()
end, {
expr = true,
replace_keycodes = false,
})
```
> Le bloc `init_options` contient un contournement temporaire pour Ruby LSP 0.26.11 : dans certains petits projets Ruby plats, Ruby Indexer peut construire le motif `{}/**/*.rb` et indexer un même fichier sous deux chemins différents. Cette exclusion neutralise uniquement ce motif ; les fichiers Ruby restent indexés normalement. Lorsque le problème sera corrigé dans Ruby LSP/Ruby Indexer, le bloc `init_options` pourra être retiré.
Neovim gère les plugins avec `vim.pack`. `plenary.nvim` est une dépendance de Telescope, `nvim-autopairs` ferme automatiquement les parenthèses, crochets, accolades et guillemets, et Grug Far utilise `ripgrep` pour la recherche et le remplacement. La complétion Ruby, les signatures de méthodes et la navigation LSP utilisent directement les fonctions intégrées à Neovim, sans plugin de complétion supplémentaire.
Neovim gère les plugins avec `vim.pack`. `plenary.nvim` est une dépendance de Telescope, `nvim-autopairs` ferme automatiquement les parenthèses, crochets, accolades et guillemets, et Grug Far utilise `ripgrep` pour la recherche et le remplacement. Les diagnostics, les signatures de méthodes et la navigation Ruby utilisent directement le client LSP intégré à Neovim. Aucune complétion LSP automatique n'est activée.
Le réglage `vim.opt.clipboard = "unnamedplus"` relie le registre par défaut de Neovim au presse-papiers système. Sous Wayland, Neovim utilise `wl-copy` et `wl-paste` fournis par `wl-clipboard`. Vous pouvez vérifier le fournisseur détecté avec :
@@ -270,13 +217,13 @@ La section `Clipboard` doit indiquer qu'un outil de presse-papiers a été trouv
### Mise à jour des plugins
Pour rechercher les nouvelles versions des plugins gérés par `vim.pack` :
Pour rechercher les mises à jour disponibles pour les plugins gérés par `vim.pack` :
```text
:packupdate
:lua vim.pack.update()
```
Vérifiez les changements proposés, puis utilisez `:write` pour les accepter. Pour contrôler l'état du gestionnaire de plugins :
Vérifiez les changements proposés, puis utilisez `:write` pour les accepter. Redémarrez ensuite Neovim pour utiliser les plugins mis à jour. Pour contrôler l'état du gestionnaire de plugins :
```text
:checkhealth vim.pack
@@ -382,8 +329,6 @@ Les commandes suivantes suffisent pour commencer :
| `Ctrl-]` | Aller à la définition |
| `Ctrl-t` | Revenir après un saut vers une définition |
| `Ctrl-s` | Afficher la signature de la méthode en mode insertion (raccourci LSP natif) |
| `Tab` | Accepter la proposition sélectionnée, ou la première proposition si aucune ne l'est |
| `Entrée` | Accepter la proposition sélectionnée, sinon insérer une nouvelle ligne |
| `u` | Annuler |
### Grug Far