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 {
mode = { 'n', 'v' },
{ '<leader>F', group = 'Fichier' }, -- group
{ '<leader>Fe', neotree_helper.smart_open, desc = 'Parcourir fichiers' },
{ '<leader>Fc', bufremove.delete, desc = 'Fermer buffer', silent = 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 },
-- { '<leader>f', group = '[F]iles' }, -- group
{ '<leader>f', neotree_helper.smart_open, desc = 'Open file' },
{ '<C-o>', neotree_helper.smart_open, desc = 'Open file', silent = true, hidden = true },
}
-- The line beneath this is called `modeline`. See `:help modeline`

View File

@@ -5,7 +5,7 @@ local wk = require 'which-key'
wk.add {
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`

View File

@@ -3,9 +3,11 @@
require 'custom.keymaps.nop'
require 'custom.keymaps.general'
require 'custom.keymaps.buffers'
require 'custom.keymaps.files'
require 'custom.keymaps.edit'
require 'custom.keymaps.display'
require 'custom.keymaps.quarto'
-- The line beneath this is called `modeline`. See `:help modeline`
-- 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 '~')
-- Si c'est un fichier réel, révéler le fichier dans l'arborescence
elseif is_real_file and bufname ~= '' then
vim.cmd 'Neotree position=left reveal=true'
-- Sinon, ouvrir dans le répertoire de travail courant
vim.cmd('Neotree toggle position=left reveal=true dir=' .. vim.fn.expand '%:p:h')
-- vim.cmd 'Neotree position=left reveal=true'
-- Sinon, ouvrir dans le répertoire de travail courant
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
@@ -85,4 +86,3 @@ return M
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et

View File

@@ -6,7 +6,7 @@
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
-- 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
-- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which
@@ -38,4 +38,5 @@ vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper win
-- vim.keymap.set("n", "<C-S-k>", "<C-w>K", { desc = "Move window to the upper" })
-- 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
require 'kickstart.plugins.mini',
require 'kickstart.plugins.snacks', -- for use with neo-tree
require 'kickstart.plugins.noice',
require 'kickstart.plugins.treesitter',
require 'kickstart.plugins.telescope',
require 'kickstart.plugins.neo-tree',
require 'kickstart.plugins.snacks',
require 'kickstart.plugins.treesitter',
require 'kickstart.plugins.lsp',
require 'kickstart.plugins.autopairs',
require 'kickstart.plugins.autoformat',

View File

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

View File

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

View File

@@ -4,72 +4,82 @@
local neotree_helper = require 'custom.plugins.neotree-helper'
return {
'nvim-neo-tree/neo-tree.nvim',
version = '*',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
'MunifTanjim/nui.nvim',
'folke/snacks.nvim', -- optional for image preview
'saifulapm/neotree-file-nesting-config', -- optional for VSCode like file nesting
},
lazy = false,
keys = {
-- { '<C-o>', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
},
opts = {
hide_root_node = true, -- recommanded config for VSCode like file nesting
retain_hidden_root_indent = true, -- recommanded config for VSCode like file nesting
filesystem = {
filtered_items = {
show_hidden_count = false, -- recommanded config for VSCode like file nesting
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',
{
'nvim-neo-tree/neo-tree.nvim',
version = '*',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
'MunifTanjim/nui.nvim',
'folke/snacks.nvim', -- optional for image preview
'saifulapm/neotree-file-nesting-config', -- optional for VSCode like file nesting
},
lazy = false,
keys = {
-- { '<C-o>', ':Neotree toggle reveal<CR>', desc = 'NeoTree reveal', silent = true },
},
opts = {
hide_root_node = true, -- recommanded config for VSCode like file nesting
retain_hidden_root_indent = true, -- recommanded config for VSCode like file nesting
filesystem = {
filtered_items = {
show_hidden_count = false, -- recommanded config for VSCode like file nesting
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',
},
['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 = {
trash = neotree_helper.trash,
trash_visual = neotree_helper.trash_visual,
-- recommanded config for VSCode like file nesting
default_component_configs = {
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
default_component_configs = {
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,
},
},
config = function(_, opts)
-- Adding rules from plugin
opts.nesting_rules = require('neotree-file-nesting-config').nesting_rules
require('neo-tree').setup(opts)
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`

View File

@@ -1,5 +1,8 @@
-- Quarto
-- https://github.com/quarto-dev/quarto-nvim
-- Quarto and other tools to use with
-- quarto: https://github.com/quarto-dev/quarto-nvim
-- vim-slime: https://github.com/jpalardy/vim-slime
-- molten: https://github.com/benlubas/molten-nvim
--
return {
{
@@ -9,4 +12,96 @@ return {
'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' },
-- },
-- },
}