This commit is contained in:
2025-08-10 14:02:33 +02:00
parent 36f51bb73c
commit bc65b628dd
13 changed files with 246 additions and 94 deletions

View File

@@ -0,0 +1,24 @@
-- Neo-tree mappings
--
local wk = require 'which-key'
local neotree_helper = require 'custom.plugins.neotree-helper'
local bufremove = require 'mini.bufremove'
wk.add {
mode = { 'n', 'v', 'i' },
{ '<leader>b', group = '[B]uffers' }, -- group
{ '<leader>bc', bufremove.delete, desc = '[C]lose [B]uffer', silent = true },
{ '<leader>bl', '<CMD>Neotree buffers<CR>', desc = '[L]ist open [B]uffers', silent = true },
{ '<leader>bs', '<CMD>source %<CR>', desc = '[B]uffer [S]ource', silent = true },
{ '<leader>bw', '<CMD>w<CR>', desc = '[B]uffer [W]rite', silent = true },
{ '<leader>bp', '<CMD>bprevious<CR>', desc = '[P]revious [B]uffer', silent = true },
{ '<leader>bn', '<CMD>bnext<CR>', desc = '[N]ext [B]uffer', silent = true },
{ '<C-PageUp>', '<CMD>bprevious<CR>', desc = '[P]revious [B]uffer', silent = true, hidden = true },
{ '<C-PageDown>', '<CMD>bnext<CR>', desc = '[N]ext [B]uffer', silent = true, hidden = true },
{ '<C-c>', bufremove.delete, desc = '[C]lose [B]uffer', silent = true, hidden = true },
{ '<C-s>', '<CMD>w<CR>', desc = 'Save buffer', silent = true, hidden = true },
}
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et

View File

@@ -7,20 +7,9 @@ local bufremove = require 'mini.bufremove'
wk.add { wk.add {
mode = { 'n', 'v' }, mode = { 'n', 'v' },
{ '<leader>F', group = 'Fichier' }, -- group -- { '<leader>f', group = '[F]iles' }, -- group
{ '<leader>Fe', neotree_helper.smart_open, desc = 'Parcourir fichiers' }, { '<leader>f', neotree_helper.smart_open, desc = 'Open file' },
{ '<leader>Fc', bufremove.delete, desc = 'Fermer buffer', silent = true }, { '<C-o>', neotree_helper.smart_open, desc = 'Open file', silent = true, hidden = true },
{ '<leader>Fl', '<CMD>Neotree buffers<CR>', desc = 'Buffers ouverts', silent = true },
{ '<leader>Fr', '<CMD>source %<CR>', desc = 'Recharger buffer', silent = true },
{ '<leader>Fs', '<CMD>w<CR>', desc = 'Sauver buffer', silent = true },
{ '<leader>Fp', '<CMD>bprevious<CR>', desc = 'Buffer précédent', silent = true },
{ '<leader>Fn', '<CMD>bnext<CR>', desc = 'Buffer suivant', silent = true },
{ '<C-PageUp>', '<CMD>bprevious<CR>', desc = 'Buffer précédent', silent = true, hidden = true },
{ '<C-PageDown>', '<CMD>bnext<CR>', desc = 'Buffer suivant', silent = true, hidden = true },
-- { '<F5>', '<CMD>source %<CR>', desc = 'Recharger buffer', silent = true, hidden = true },
{ '<C-s>', '<CMD>w<CR>', desc = 'Sauver buffer', silent = true, hidden = true },
{ '<C-c>', bufremove.delete, desc = 'Fermer buffer', silent = true, hidden = true },
{ '<C-o>', neotree_helper.smart_open, desc = 'Parcourir fichiers', silent = true, hidden = true },
} }
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`

View File

@@ -5,7 +5,7 @@ local wk = require 'which-key'
wk.add { wk.add {
mode = { 'n', 'v', 'i' }, mode = { 'n', 'v', 'i' },
{ '<leader>q', '<CMD>qall<CR>', desc = 'Quitter', silent = true }, { '<C-q>', '<CMD>qall<CR>', desc = 'Quitter', silent = true },
} }
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`

View File

@@ -3,9 +3,11 @@
require 'custom.keymaps.nop' require 'custom.keymaps.nop'
require 'custom.keymaps.general' require 'custom.keymaps.general'
require 'custom.keymaps.buffers'
require 'custom.keymaps.files' require 'custom.keymaps.files'
require 'custom.keymaps.edit' require 'custom.keymaps.edit'
require 'custom.keymaps.display' require 'custom.keymaps.display'
require 'custom.keymaps.quarto'
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et -- vim: ts=2 sts=2 sw=2 et

View File

@@ -0,0 +1,13 @@
-- Quarto mappings
--
local wk = require 'which-key'
wk.add {
mode = { 'n', 'v', 'i' },
{ '<leader>q', group = '[Q]uarto' }, -- group
{ '<leader>qp', '<CMD>QuartoPreview<CR>', desc = '[Q]uarto [P]review' },
}
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et

View File

@@ -0,0 +1,17 @@
-- Keymapping helper module
--
local M = {}
local function map(mode, key, func, opts)
vim.keymap.set(mode, key, func, opts)
end
function M.nmap(key, effect, desc)
map('n', key, effect, { silent = true, noremap = true, desc = desc })
end
return M
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et

View File

@@ -30,10 +30,11 @@ function M.smart_open()
vim.cmd('Neotree toggle reveal=false position=float dir=' .. vim.fn.expand '~') vim.cmd('Neotree toggle reveal=false position=float dir=' .. vim.fn.expand '~')
-- Si c'est un fichier réel, révéler le fichier dans l'arborescence -- Si c'est un fichier réel, révéler le fichier dans l'arborescence
elseif is_real_file and bufname ~= '' then elseif is_real_file and bufname ~= '' then
vim.cmd 'Neotree position=left reveal=true' vim.cmd('Neotree toggle position=left reveal=true dir=' .. vim.fn.expand '%:p:h')
-- Sinon, ouvrir dans le répertoire de travail courant -- vim.cmd 'Neotree position=left reveal=true'
-- Sinon, ouvrir dans le répertoire de travail courant
else else
vim.cmd('Neotree position=left reveal_force_cwd=true dir=' .. vim.fn.getcwd()) vim.cmd('Neotree toggle position=left reveal_force_cwd=true dir=' .. vim.fn.getcwd())
end end
end end
@@ -85,4 +86,3 @@ return M
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et -- vim: ts=2 sts=2 sw=2 et

View File

@@ -6,7 +6,7 @@
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>') vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
-- Diagnostic keymaps -- Diagnostic keymaps
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) -- vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
-- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier -- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier
-- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which -- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which
@@ -39,3 +39,4 @@ vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper win
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et -- vim: ts=2 sts=2 sw=2 et

View File

@@ -14,11 +14,11 @@ require('lazy').setup({
'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically 'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically
require 'kickstart.plugins.mini', require 'kickstart.plugins.mini',
require 'kickstart.plugins.snacks', -- for use with neo-tree
require 'kickstart.plugins.noice', require 'kickstart.plugins.noice',
require 'kickstart.plugins.treesitter',
require 'kickstart.plugins.telescope', require 'kickstart.plugins.telescope',
require 'kickstart.plugins.neo-tree', require 'kickstart.plugins.neo-tree',
require 'kickstart.plugins.snacks',
require 'kickstart.plugins.treesitter',
require 'kickstart.plugins.lsp', require 'kickstart.plugins.lsp',
require 'kickstart.plugins.autopairs', require 'kickstart.plugins.autopairs',
require 'kickstart.plugins.autoformat', require 'kickstart.plugins.autoformat',

View File

@@ -8,12 +8,12 @@ return {
cmd = { 'ConformInfo' }, cmd = { 'ConformInfo' },
keys = { keys = {
{ {
'<leader>f', '<leader>bf',
function() function()
require('conform').format { async = true, lsp_format = 'fallback' } require('conform').format { async = true, lsp_format = 'fallback' }
end, end,
mode = '', mode = '',
desc = '[F]ormat buffer', desc = '[F]ormat [B]uffer',
}, },
}, },
opts = { opts = {
@@ -43,3 +43,4 @@ return {
}, },
}, },
} }

View File

@@ -42,12 +42,12 @@ return {
evaluate_single = true, evaluate_single = true,
header = table.concat(logo.neovim1, '\n'), header = table.concat(logo.neovim1, '\n'),
items = { items = {
{ action = 'edit ~/.config/nvim/init.lua', name = ' Configuration', section = 'Configuration' }, { action = 'Neotree reveal=true position=float dir=~/.config/nvim/', name = ' Configuration', section = 'General' },
{ action = 'Telescope find_files', name = '󰱼 Rechercher fichier', section = 'Telescope' }, { action = 'e .', name = ' Open', section = 'Files' },
{ action = 'Telescope oldfiles', name = '󰋚 Fichiers récents', section = 'Telescope' }, { action = 'Telescope find_files', name = '󰱼 Find file', section = 'Files' },
{ action = 'Telescope live_grep', name = '󰱼 Rechercher texte', section = 'Telescope' }, { action = 'Telescope oldfiles', name = '󰋚 Recent files', section = 'Files' },
{ action = 'e .', name = ' Ouvrir', section = 'Fichiers' }, { action = 'Telescope live_grep', name = '󰱼 Find text', section = 'Files' },
{ action = 'qa', name = '󰗼 Quitter', section = 'Quitter' }, { action = 'qa', name = '󰗼 Quit', section = 'General' },
}, },
content_hooks = { content_hooks = {
require('mini.starter').gen_hook.adding_bullet '󰐊 ', require('mini.starter').gen_hook.adding_bullet '󰐊 ',
@@ -64,7 +64,7 @@ return {
commenter.setup { commenter.setup {
mappings = { mappings = {
comment = '<leader>c', comment = '<leader>c',
comment_line = '<leader>cl', comment_line = '<leader>c',
comment_visual = '<leader>c', comment_visual = '<leader>c',
textobject = '<leader>c', textobject = '<leader>c',
}, },

View File

@@ -4,72 +4,82 @@
local neotree_helper = require 'custom.plugins.neotree-helper' local neotree_helper = require 'custom.plugins.neotree-helper'
return { return {
'nvim-neo-tree/neo-tree.nvim', {
version = '*', 'nvim-neo-tree/neo-tree.nvim',
dependencies = { version = '*',
'nvim-lua/plenary.nvim', dependencies = {
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended 'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim', 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
'folke/snacks.nvim', -- optional for image preview 'MunifTanjim/nui.nvim',
'saifulapm/neotree-file-nesting-config', -- optional for VSCode like file nesting 'folke/snacks.nvim', -- optional for image preview
}, 'saifulapm/neotree-file-nesting-config', -- optional for VSCode like file nesting
lazy = false, },
keys = { lazy = false,
-- { '<C-o>', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true }, keys = {
}, -- { '<C-o>', ':Neotree toggle reveal<CR>', desc = 'NeoTree reveal', silent = true },
opts = { },
hide_root_node = true, -- recommanded config for VSCode like file nesting opts = {
retain_hidden_root_indent = true, -- recommanded config for VSCode like file nesting hide_root_node = true, -- recommanded config for VSCode like file nesting
filesystem = { retain_hidden_root_indent = true, -- recommanded config for VSCode like file nesting
filtered_items = { filesystem = {
show_hidden_count = false, -- recommanded config for VSCode like file nesting filtered_items = {
never_show = { -- recommanded config for VSCode like file nesting show_hidden_count = false, -- recommanded config for VSCode like file nesting
'.DS_Store', never_show = { -- recommanded config for VSCode like file nesting
}, '.DS_Store',
},
window = {
mappings = {
['<C-o>'] = {
'close_window',
desc = 'close neo-tree',
},
['d'] = {
'trash',
desc = 'trash file',
}, },
}, },
window = {
mappings = {
-- ['<C-o>'] = {
-- 'close_window',
-- desc = 'close neo-tree',
-- },
['d'] = {
'trash',
desc = 'trash file',
},
['P'] = {
'toggle_preview',
desc = 'preview image',
config = {
use_float = false,
use_snacks_image = true,
},
},
},
},
commands = {
trash = neotree_helper.trash,
trash_visual = neotree_helper.trash_visual,
},
}, },
commands = { -- recommanded config for VSCode like file nesting
trash = neotree_helper.trash, default_component_configs = {
trash_visual = neotree_helper.trash_visual, indent = {
with_expanders = true,
expander_collapsed = '',
expander_expanded = '',
},
},
event_handlers = {
{
event = 'file_opened',
handler = function()
-- auto close
-- vim.cmd 'Neotree close'
-- or
require('neo-tree.command').execute { action = 'close' }
end,
},
}, },
}, },
-- recommanded config for VSCode like file nesting -- recommanded config for VSCode like file nesting
default_component_configs = { config = function(_, opts)
indent = { -- Adding rules from plugin
with_expanders = true, opts.nesting_rules = require('neotree-file-nesting-config').nesting_rules
expander_collapsed = '', require('neo-tree').setup(opts)
expander_expanded = '', end,
},
},
event_handlers = {
{
event = 'file_opened',
handler = function()
-- auto close
-- vim.cmd 'Neotree close'
-- or
require('neo-tree.command').execute { action = 'close' }
end,
},
},
}, },
-- recommanded config for VSCode like file nesting
config = function(_, opts)
-- Adding rules from plugin
opts.nesting_rules = require('neotree-file-nesting-config').nesting_rules
require('neo-tree').setup(opts)
end,
} }
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`

View File

@@ -1,5 +1,8 @@
-- Quarto -- Quarto and other tools to use with
-- https://github.com/quarto-dev/quarto-nvim -- quarto: https://github.com/quarto-dev/quarto-nvim
-- vim-slime: https://github.com/jpalardy/vim-slime
-- molten: https://github.com/benlubas/molten-nvim
--
return { return {
{ {
@@ -9,4 +12,96 @@ return {
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',
}, },
}, },
-- {
-- 'jpalardy/vim-slime',
-- init = function()
-- vim.g.slime_target = 'kitty'
-- vim.g.slime_no_mappings = 1
-- end,
-- },
-- {
-- 'benlubas/molten-nvim',
-- version = '^1.0.0', -- use version <2.0.0 to avoid breaking changes
-- dependencies = { '3rd/image.nvim' },
-- build = ':UpdateRemotePlugins',
-- init = function()
-- -- these are examples, not defaults. Please see the readme
-- vim.g.molten_image_provider = 'image.nvim'
-- vim.g.molten_output_win_max_height = 20
-- end,
-- },
-- {
-- '3rd/image.nvim',
-- build = false, -- so that it doesn't build the rock https://github.com/3rd/image.nvim/issues/91#issuecomment-2453430239
-- opts = {
-- backend = 'kitty',
-- processor = 'magick_cli', -- or "magick_rock"
-- integrations = {
-- markdown = {
-- enabled = true,
-- clear_in_insert_mode = false,
-- download_remote_images = true,
-- only_render_image_at_cursor = false,
-- only_render_image_at_cursor_mode = 'popup',
-- floating_windows = false, -- if true, images will be rendered in floating markdown windows
-- filetypes = { 'markdown', 'vimwiki', 'quarto' }, -- markdown extensions (ie. quarto) can go here
-- },
-- neorg = {
-- enabled = true,
-- filetypes = { 'norg' },
-- },
-- typst = {
-- enabled = true,
-- filetypes = { 'typst' },
-- },
-- html = {
-- enabled = false,
-- },
-- css = {
-- enabled = false,
-- },
-- },
-- max_width = nil,
-- max_height = nil,
-- max_width_window_percentage = nil,
-- max_height_window_percentage = 50,
-- window_overlap_clear_enabled = false, -- toggles images when windows are overlapped
-- window_overlap_clear_ft_ignore = { 'cmp_menu', 'cmp_docs', 'snacks_notif', 'scrollview', 'scrollview_sign' },
-- editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus
-- tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off)
-- hijack_file_patterns = { '*.png', '*.jpg', '*.jpeg', '*.gif', '*.webp', '*.avif' }, -- render image files as images when opened
-- },
-- },
-- {
-- 'HakonHarnes/img-clip.nvim',
-- event = 'BufEnter',
-- ft = { 'markdown', 'quarto', 'latex' },
-- opts = {
-- -- add options here
-- -- or leave it empty to use the default settings
-- default = {
-- dir_path = 'img',
-- },
-- filetypes = {
-- markdown = {
-- url_encode_path = true,
-- template = '![$CURSOR]($FILE_PATH)',
-- drag_and_drop = {
-- download_images = false,
-- },
-- },
-- quarto = {
-- url_encode_path = true,
-- template = '![$CURSOR]($FILE_PATH)',
-- drag_and_drop = {
-- download_images = false,
-- },
-- },
-- },
-- },
-- keys = {
-- -- suggested keymap
-- { '<leader>p', '<cmd>PasteImage<cr>', desc = 'Paste image from system clipboard' },
-- },
-- },
} }