remove neovim custom completion
This commit is contained in:
1 parent
bd9ab04a83
commit
46d7269108
1 file changed
+11
-66
+11
-66
@@ -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
|
||||
|
||||
Reference in new issue
Block a user