Re-add new neovim config (without documentation for now)

This commit is contained in:
linarphy 2024-04-14 00:48:20 +02:00
parent c71bcb12ae
commit bb10f99a16
No known key found for this signature in database
GPG key ID: B914FF3FE69AA363
32 changed files with 541 additions and 0 deletions

View file

@ -0,0 +1,7 @@
require('variables')
require('plugins')
require('mapping')
require('display')

View file

@ -0,0 +1,22 @@
{
"dashboard-nvim": { "branch": "master", "commit": "681300934baf36f6184ca41f0b26aed22056d4ee" },
"fzf-lua": { "branch": "main", "commit": "344b309421e5222a6199e4b46d01041089b6a2ae" },
"lazy.nvim": { "branch": "main", "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" },
"mini.nvim": { "branch": "main", "commit": "c4598eaaa7bc29c1d17dd1238c3436c1fb4233aa" },
"monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "c61074acb19102dfc6f21738dcae4d9a494a8959" },
"noice.nvim": { "branch": "main", "commit": "0cbe3f88d038320bdbda3c4c5c95f43a13c3aa12" },
"nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" },
"nvim-lspconfig": { "branch": "master", "commit": "b3014f2209503944f2714cf27c95591433a0c7d8" },
"nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" },
"nvim-treesitter": { "branch": "master", "commit": "f08a9d97f7a2ac02115a5c1c8e3973b2634d996b" },
"nvim-treesitter-context": { "branch": "master", "commit": "ba05c6b753130d96b284d3e8ba8f54c28c0fb6d1" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "6e9bb569a510bdfab6095c217a2f714af7a3d116" },
"nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" },
"nvim-web-devicons": { "branch": "master", "commit": "6e355632387a085f15a66ad68cf681c1d7374a04" },
"persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" },
"plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" },
"trouble.nvim": { "branch": "dev", "commit": "10eff94809ecd6ee6cc59f42e9521b9b8a14e9ce" },
"vim-fugitive": { "branch": "master", "commit": "dac8e5c2d85926df92672bf2afb4fc48656d96c7" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
}

View file

@ -0,0 +1,9 @@
vim.opt.relativenumber = true
vim.opt.number = true
vim.opt.wrap = false
vim.opt.emoji = false
vim.opt.cursorline = true
vim.opt.cursorcolumn = true
require('monokai').setup {}

View file

@ -0,0 +1,2 @@
vim.opt.guifont = 'mononoki NFM:h11'
vim.opt.background = dark

View file

@ -0,0 +1,3 @@
require('display.editor')
require('display.gui')

View file

@ -0,0 +1,24 @@
vim.keymap.set(
'n' ,
'<Leader>pfr' ,
'<cmd>lua require(\'fzf-lua\').oldfiles()<CR>',
{
desc = 'List recent files'
}
)
vim.keymap.set(
'n' ,
'<Leader>pff' ,
'<cmd>lua require(\'fzf-lua\').files()<CR>',
{
desc = 'Search files in current folder'
}
)
vim.keymap.set(
'n' ,
'<Leader>pfw' ,
'<cmd>lua require(\'fzf-lua\').grep()<CR>',
{
desc = 'Search word in files'
}
)

View file

@ -0,0 +1,11 @@
require('mapping.maintenance')
require('mapping.movement')
require('mapping.lsp')
require('mapping.persistence')
require('mapping.fzf-lua')
require('mapping.neo-tree')

View file

@ -0,0 +1,32 @@
vim.keymap.set(
'n' ,
'<Leader>ple' ,
vim.diagnostic.open_float,
{
desc = 'Open float window for diagnostic'
}
)
vim.keymap.set(
'n' ,
'<Leader>pln' ,
vim.diagnostic.goto_prev,
{
desc = 'Go to previous issue'
}
)
vim.keymap.set(
'n' ,
'<Leader>pl?' ,
vim.diagnostic.goto_next,
{
desc = 'Go to next issue'
}
)
vim.keymap.set(
'n' ,
'<Leader>plq' ,
vim.diagnostic.setloclist,
{
desc = 'Open list of issues for diagnostic'
}
)

View file

@ -0,0 +1,17 @@
vim.keymap.set(
'n' ,
'<Leader>ie' ,
':tabedit ' .. require('variables.core').config .. '<CR>',
{
desc = 'edit current configuration in a new tab'
}
)
vim.keymap.set(
'n' ,
'<Leader>is' ,
':source ' .. require('variables.core').config .. '<CR>',
{
desc = 'try to reload current configuration'
}
)

View file

@ -0,0 +1,49 @@
vim.keymap.set(
'n' ,
'<C-' .. require('variables.mapping').up .. '>',
'<C-w>' .. require('variables.mapping').up ,
{
desc = 'Move to the up window'
}
)
vim.keymap.set(
'n' ,
'<C-' .. require('variables.mapping').down .. '>',
'<C-w>' .. require('variables.mapping').down ,
{
desc = 'Move to the down window'
}
)
vim.keymap.set(
'n' ,
'<C-' .. require('variables.mapping').left .. '>',
'<C-w>' .. require('variables.mapping').left ,
{
desc = 'Move to the left window'
}
)
vim.keymap.set(
'n' ,
'<C-' .. require('variables.mapping').right .. '>',
'<C-w>' .. require('variables.mapping').right ,
{
desc = 'Move to the right window'
}
)
vim.keymap.set(
'n' ,
'<Leader>jt',
'<C-]>' ,
{
desc = 'Jump to tag under the cursor'
}
)
vim.keymap.set(
'n' ,
'<Leader>jt',
'<C-]>' ,
{
desc = 'Jump to tag under the cursor'
}
)

View file

@ -0,0 +1,8 @@
vim.keymap.set(
'n',
'<Leader>pe',
':Neotree<CR>',
{
desc = 'Open file explorer in a side buffer'
}
)

View file

@ -0,0 +1,24 @@
vim.keymap.set(
'n' ,
'<Leader>psl' ,
'<cmd>lua require(\'persistence\').load({ last = true })<CR>',
{
desc = 'Restore last session'
}
)
vim.keymap.set(
'n' ,
'<Leader>psd' ,
'<cmd>lua require(\'persistence\').load()<CR>',
{
desc = 'Restore last session for the current directory'
}
)
vim.keymap.set(
'n' ,
'<Leader>pss' ,
'<cmd>lua require(\'persistence\').stop()<CR>',
{
desc = 'Do not save this session on neovim shutdown'
}
)

View file

@ -0,0 +1,84 @@
return {
'glepnir/dashboard-nvim',
event = 'VimEnter' ,
dependencies = {
'nvim-tree/nvim-web-devicons'
} ,
config = function()
require('dashboard').setup({
theme = 'doom',
config = {
header = {
'',
'MMMMMMMMMWkdXMMMMMMMMMMMMMWXOd:\'.. ..\':oOXWMMMMMMMMMMMMMNxkWMMMMMMMMM',
'MMMMMMMMMWo.;kNMMMMMMMMNOd:\'. .\':oONMMMMMMMMWO:.lWMMMMMMMMM',
'MMMMMMMMMWo ;kNMMMNkc\' \'ckXMMMWO:. lWMMMMMMMMM',
'MMMMMMMMMWo .;kKd\' \'oKO:. lWMMMMMMMMM',
'MMMMMMMMMWo .xO:. :Ox\' lWMMMMMMMMM',
'MMMMMMMMMWo .oKWMNk;. ;kNMMXd\' lWMMMMMMMMM',
'MMMMMMMMMWo..oKWMMMMMNk;. ;kNMMMMMMXd\'.lWMMMMMMMMM',
'MMMMMMMMMWOdKWMMMMMMMMMNk;. ;kNMMMMMMMMMWXxOWMMMMMMMMM',
'MMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMM',
'MMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMM',
'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM',
'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM',
'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. .;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM',
'XWMMMMMMMW0doooooooooooooooooooooooddddooooooooooooooooooooooooo0WMMMMMMMMX',
',oKWMMMMMWd. ;kNMNk; oWMMMMMMXo\'',
'. .oKWMMMMk. ;kNMMMMMNk; .kMMMMMXd\' ',
'\' .oXWMMX; ;kNMMMMMMMMMNk; ;KMMWXd\' .',
'c .oXWWx. ;kNMMMMMMMMMMMMMNk; .xWWXd\' :',
'O. .oXNo ;kNMMMMMMMMMMMMMMMMMNk; lXXd\' .k',
'No .oOc ;kNMMMMMMMMMMMMMMMMMMMMMNk; cOd\' lN',
'MX: \'c;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMNk; .;c\' ;KM',
'MM0; ... ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; ... ,0MM',
'MMM0; .:kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk:. ,0MMM',
'MMMMKc ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; :KMMMM',
'MMMMMNd. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; .oXMMMMM',
'MMMMMMW0:. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; ;OWMMMMMM',
'MMMMMMMMNl\'lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl\'lXMMMMMMMM',
'',
},
center = {
{
icon = '' ,
desc = 'Fichiers récents',
key = 'o',
keymap = ', p f r',
action = 'lua require(\'fzf-lua\').oldfiles()',
},
{
icon = '',
desc = 'Rechercher un fichier',
key = 'r',
keymap = ', p f f',
action = 'lua require(\'fzf-lua\').files()',
},
{
icon = '',
desc = 'Rechercher un mot',
key = 'm',
keymap = ', p f w',
action = 'lua require(\'fzf-lua\').grep()',
},
{
icon = '',
desc = 'Ouvrir des fichiers de configuration',
key = 'c',
keymap = ', i e',
action = 'lua vim.cmd( \'e ~/.config/nvim/init.lua\')',
},
{
icon = '',
desc = 'Restaurer la dernière session',
key = 's',
keymap = ', p s l',
action = 'lua require(\'persistence\').load({ last = true })',
},
},
footer = {
},
} ,
})
end
}

View file

@ -0,0 +1,9 @@
return {
'ibhagwan/fzf-lua',
dependencies = {
'nvim-tree/nvim-web-devicons'
} ,
config = function()
require('fzf-lua').setup({})
end
}

View file

@ -0,0 +1,20 @@
local ok, lazy = pcall(require, 'lazy')
if not ok then -- avoid lazy trying to load it's own script in loop
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git" ,
"clone" ,
"--filter=blob:none" ,
"https://github.com/folke/lazy.nvim.git",
"--branch=stable" , -- latest stable release
lazypath ,
})
end
vim.opt.rtp:prepend(lazypath)
require('lazy').setup('plugins')
else
return {}
end

View file

@ -0,0 +1,4 @@
return {
'echasnovski/mini.nvim',
version = false
}

View file

@ -0,0 +1,3 @@
return {
'tanvirtin/monokai.nvim'
}

View file

@ -0,0 +1,9 @@
return {
'nvim-neo-tree/neo-tree.nvim',
branch = 'v3.x',
dependencies = {
'nvim-lua/plenary.nvim' ,
'nvim-tree/nvim-web-devicons',
'MunifTanjim/nui.nvim' ,
}
}

View file

@ -0,0 +1,15 @@
return {
"folke/noice.nvim",
event = "VeryLazy",
opts = {
-- add any options here
},
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
}
}

View file

@ -0,0 +1,18 @@
return {
'neovim/nvim-lspconfig',
event = {
'BufReadPre',
'BufNewFile',
},
config = function()
local lspconfig = require('lspconfig')
lspconfig.pyright.setup {}
lspconfig.tsserver.setup {}
lspconfig.rust_analyzer.setup {
settings = {
['rust-analyzer'] = {},
},
}
end
}

View file

@ -0,0 +1,3 @@
return {
'nvim-treesitter/nvim-treesitter-context',
}

View file

@ -0,0 +1,88 @@
require('plugins.nvim-treesitter.folding')
return {
'nvim-treesitter/nvim-treesitter',
version = false ,
build = ':TSUpdate' ,
dependencies = {
{
'nvim-treesitter/nvim-treesitter-textobjects',
}
},
config = function()
local configs = require('nvim-treesitter.configs')
configs.setup({
highlight = {
enable = true,
},
indent = {
enable = true,
},
ensure_installed = {
'bash' ,
'c' ,
'cpp' ,
'css' ,
'diff' ,
'html' ,
'javascript' ,
'json' ,
'markdown' ,
'markdown_inline',
'php' ,
'python' ,
'regex' ,
'rust' ,
'xml' ,
'vim' ,
},
autotag = {
enable = true,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = '<Leader>pts',
node_incremental = '<Leader>ptn',
scope_incremental = '<Leader>pts',
node_decremental = '<Leader>ptd',
}
},
text_objects = {
move = {
enable = true,
set_jumps = true,
goto_next_start = {
['<Leader>mnf'] = '@function.outer',
['<Leader>mnc'] = '@class.outer' ,
['<Leader>mns'] = {
query = '@scope' ,
query_group = 'locals' ,
desc = 'Scope suivant',
} ,
} ,
goto_next_end = {
['<Leader>mnF'] = '@function.outer',
['<Leader>mnC'] = '@class.outer' ,
} ,
goto_previous_start = {
['<Leader>mpf'] = '@function.outer',
['<Leader>mpc'] = '@class.outer' ,
['<Leader>mns'] = {
query = '@scope' ,
query_group = 'locals' ,
desc = 'Scope précédent',
} ,
} ,
goto_previous_end = {
['<Leader>mpF'] = '@function.outer',
['<Leader>mpC'] = '@function.class',
} ,
},
},
sync_install = false,
auto_install = true ,
})
end
}

View file

@ -0,0 +1,2 @@
vim.opt.foldmethod = 'expr'
vim.opt.foldexpr = 'nvim_treesitter#foldexp()'

View file

@ -0,0 +1,3 @@
return {
'windwp/nvim-ts-autotag',
}

View file

@ -0,0 +1,6 @@
return {
'folke/persistence.nvim',
event = 'BufReadPre' ,
opts = {
},
}

View file

@ -0,0 +1,37 @@
return {
'folke/trouble.nvim',
branch = 'dev', -- IMPORTANT!
keys = {
{
'<leader>plt',
'<cmd>Trouble diagnostics toggle<cr>',
desc = 'Diagnostics (Trouble)',
},
{
'<leader>plb',
'<cmd>Trouble diagnostics toggle filter.buf=0<cr>',
desc = 'Buffer Diagnostics (Trouble)',
},
{
'<leader>plc',
'<cmd>Trouble symbols toggle focus=false<cr>',
desc = 'Symbols (Trouble)',
},
{
'<leader>pll',
'<cmd>Trouble lsp toggle focus=false win.position=right<cr>',
desc = 'LSP Definitions / references / ... (Trouble)',
},
{
'<leader>plL',
'<cmd>Trouble loclist toggle<cr>',
desc = 'Location List (Trouble)',
},
{
'<leader>plq',
'<cmd>Trouble qflist toggle<cr>',
desc = 'Quickfix List (Trouble)',
},
},
opts = {}, -- for default options, refer to the configuration section for custom setup.
}

View file

@ -0,0 +1,4 @@
return {
'tpope/vim-fugitive',
cmd = 'Git'
}

View file

@ -0,0 +1,10 @@
return {
'folke/which-key.nvim',
event = 'VeryLazy' ,
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 1500
end ,
opts = {
}
}

View file

@ -0,0 +1,5 @@
local Core = {}
Core.config = vim.fn.stdpath('config')
return Core

View file

@ -0,0 +1,3 @@
require('variables.core')
require('variables.mapping')

View file

@ -0,0 +1,10 @@
local Mapping = {}
Mapping.up = 'k'
Mapping.down = 'j'
Mapping.left = 'h'
Mapping.right = 'l'
vim.g.mapleader = ','
return Mapping