From c7df127871218a472daa9f627cd7cf149a1e7aa1 Mon Sep 17 00:00:00 2001 From: Hippolyte Chauvin Date: Fri, 2 Jun 2023 21:30:23 +0200 Subject: [PATCH] Ajout : nouvelle configuration pour Neovim --- config/nvim-arch/init.vim | 184 ------------------ config/nvim/init.lua | 9 + config/nvim/lua/core/keymaps.lua | 7 + .../lua/core/plugin_config/catppuccin.lua | 6 + config/nvim/lua/core/plugin_config/init.lua | 4 + .../nvim/lua/core/plugin_config/lualine.lua | 15 ++ .../nvim/lua/core/plugin_config/nvim-tree.lua | 7 + config/nvim/lua/core/plugins.lua | 37 ++++ config/nvim/lua/core/style.lua | 6 + 9 files changed, 91 insertions(+), 184 deletions(-) delete mode 100644 config/nvim-arch/init.vim create mode 100644 config/nvim/init.lua create mode 100644 config/nvim/lua/core/keymaps.lua create mode 100644 config/nvim/lua/core/plugin_config/catppuccin.lua create mode 100644 config/nvim/lua/core/plugin_config/init.lua create mode 100644 config/nvim/lua/core/plugin_config/lualine.lua create mode 100644 config/nvim/lua/core/plugin_config/nvim-tree.lua create mode 100644 config/nvim/lua/core/plugins.lua create mode 100644 config/nvim/lua/core/style.lua diff --git a/config/nvim-arch/init.vim b/config/nvim-arch/init.vim deleted file mode 100644 index beff0dc..0000000 --- a/config/nvim-arch/init.vim +++ /dev/null @@ -1,184 +0,0 @@ -" Source the default Vim configuration -set runtimepath^=~/.vim runtimepath+=~/.vim/after -let &packpath = &runtimepath -source ~/.vimrc - -" colorscheme -colorscheme tokyonight-night - -" devicons -let g:webdevicons_enable = 1 -let g:webdevicons_enable_nerdtree = 1 -let g:airline_powerline_fonts = 1 - -" nerdtree -nmap :NERDTreeToggle -autocmd VimEnter * NERDTreeFocus | wincmd p -autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif -autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif -autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif - -" coc -packadd coc.nvim - -" May need for Vim (not Neovim) since coc.nvim calculates byte offset by count -" utf-8 byte sequence -set encoding=utf-8 -" Some servers have issues with backup files, see #649 -set nobackup -set nowritebackup - -" Having longer updatetime (default is 4000 ms = 4s) leads to noticeable -" delays and poor user experience -set updatetime=300 - -" Always show the signcolumn, otherwise it would shift the text each time -" diagnostics appear/become resolved -set signcolumn=yes - -" Use tab for trigger completion with characters ahead and navigate -" NOTE: There's always complete item selected by default, you may want to enable -" no select by `"suggest.noselect": true` in your configuration file -" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by -" other plugin before putting this into your config -inoremap - \ coc#pum#visible() ? coc#pum#next(1) : - \ CheckBackspace() ? "\" : - \ coc#refresh() -inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" - -" Make to accept selected completion item or notify coc.nvim to format -" u breaks current undo, please make your own choice -inoremap coc#pum#visible() ? coc#pum#confirm() - \: "\u\\=coc#on_enter()\" - -function! CheckBackspace() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction - -" Use to trigger completion -if has('nvim') - inoremap coc#refresh() -else - inoremap coc#refresh() -endif - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) - -" GoTo code navigation -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) - -" Use K to show documentation in preview window -nnoremap K :call ShowDocumentation() - -function! ShowDocumentation() - if CocAction('hasProvider', 'hover') - call CocActionAsync('doHover') - else - call feedkeys('K', 'in') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor -autocmd CursorHold * silent call CocActionAsync('highlight') - -" Symbol renaming -nmap rn (coc-rename) - -" Formatting selected code -xmap f (coc-format-selected) -nmap f (coc-format-selected) - -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s) - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end - -" Applying code actions to the selected code block -" Example: `aap` for current paragraph -xmap a (coc-codeaction-selected) -nmap a (coc-codeaction-selected) - -" Remap keys for applying code actions at the cursor position -nmap ac (coc-codeaction-cursor) -" Remap keys for apply code actions affect whole buffer -nmap as (coc-codeaction-source) -" Apply the most preferred quickfix action to fix diagnostic on the current line -nmap qf (coc-fix-current) - -" Remap keys for applying refactor code actions -nmap re (coc-codeaction-refactor) -xmap r (coc-codeaction-refactor-selected) -nmap r (coc-codeaction-refactor-selected) - -" Run the Code Lens action on the current line -nmap cl (coc-codelens-action) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server -xmap if (coc-funcobj-i) -omap if (coc-funcobj-i) -xmap af (coc-funcobj-a) -omap af (coc-funcobj-a) -xmap ic (coc-classobj-i) -omap ic (coc-classobj-i) -xmap ac (coc-classobj-a) -omap ac (coc-classobj-a) - -" Remap and to scroll float windows/popups -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" -endif - -" Use CTRL-S for selections ranges -" Requires 'textDocument/selectionRange' support of language server -nmap (coc-range-select) -xmap (coc-range-select) - -" Add `:Format` command to format current buffer -command! -nargs=0 Format :call CocActionAsync('format') - -" Add `:Fold` command to fold current buffer -command! -nargs=? Fold :call CocAction('fold', ) - -" Add `:OR` command for organize imports of the current buffer -command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - -" Mappings for CoCList -" Show all diagnostics -nnoremap a :CocList diagnostics -" Manage extensions -nnoremap e :CocList extensions -" Show commands -nnoremap c :CocList commands -" Find symbol of current document -nnoremap o :CocList outline -" Search workspace symbols -nnoremap s :CocList -I symbols -" Do default action for next item -nnoremap j :CocNext -" Do default action for previous item -nnoremap k :CocPrev -" Resume latest coc list -nnoremap p :CocListResume - diff --git a/config/nvim/init.lua b/config/nvim/init.lua new file mode 100644 index 0000000..9d54a8c --- /dev/null +++ b/config/nvim/init.lua @@ -0,0 +1,9 @@ +-- Inclure la configuration par défaut de Vim +vim.cmd [[ source ~/.vimrc ]] + +-- Modules +require('core.keymaps') +require('core.plugins') +require('core.style') +require('core.plugin_config') + diff --git a/config/nvim/lua/core/keymaps.lua b/config/nvim/lua/core/keymaps.lua new file mode 100644 index 0000000..c44d09d --- /dev/null +++ b/config/nvim/lua/core/keymaps.lua @@ -0,0 +1,7 @@ +-- Map leaders +vim.g.mapleader = ',' +vim.g.maplocalleader = ',' + +-- Keymaps +vim.keymap.set('n', 'h', ':nohlsearch') + diff --git a/config/nvim/lua/core/plugin_config/catppuccin.lua b/config/nvim/lua/core/plugin_config/catppuccin.lua new file mode 100644 index 0000000..65f4c4f --- /dev/null +++ b/config/nvim/lua/core/plugin_config/catppuccin.lua @@ -0,0 +1,6 @@ +-- Activer les couleurs du terminal +vim.o.termguicolors = true + +-- Changer la palette de couleurs +vim.cmd [[ colorscheme catppuccin ]] + diff --git a/config/nvim/lua/core/plugin_config/init.lua b/config/nvim/lua/core/plugin_config/init.lua new file mode 100644 index 0000000..bb40061 --- /dev/null +++ b/config/nvim/lua/core/plugin_config/init.lua @@ -0,0 +1,4 @@ +require("core.plugin_config.lualine") +require("core.plugin_config.nvim-tree") +require("core.plugin_config.catppuccin") + diff --git a/config/nvim/lua/core/plugin_config/lualine.lua b/config/nvim/lua/core/plugin_config/lualine.lua new file mode 100644 index 0000000..48c03ea --- /dev/null +++ b/config/nvim/lua/core/plugin_config/lualine.lua @@ -0,0 +1,15 @@ +require('lualine').setup { + options = { + icons_enabled = true, + theme = 'dracula', + }, + sections = { + lualine_a = { + { + 'filename', + path = 1, + } + } + } +} + diff --git a/config/nvim/lua/core/plugin_config/nvim-tree.lua b/config/nvim/lua/core/plugin_config/nvim-tree.lua new file mode 100644 index 0000000..c19c207 --- /dev/null +++ b/config/nvim/lua/core/plugin_config/nvim-tree.lua @@ -0,0 +1,7 @@ +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +require("nvim-tree").setup() + +vim.keymap.set('n', '', ':NvimTreeFindFileToggle') + diff --git a/config/nvim/lua/core/plugins.lua b/config/nvim/lua/core/plugins.lua new file mode 100644 index 0000000..3c6de9c --- /dev/null +++ b/config/nvim/lua/core/plugins.lua @@ -0,0 +1,37 @@ +local ensure_packer = function() + local fn = vim.fn + local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' + if fn.empty(fn.glob(install_path)) > 0 then + fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) + vim.cmd [[packadd packer.nvim]] + return true + end + return false +end + +local packer_bootstrap = ensure_packer() + +return require('packer').startup(function(use) + use 'wbthomason/packer.nvim' + use { "catppuccin/nvim", as = "catppuccin" } + use { + 'nvim-tree/nvim-tree.lua', + requires = { + 'nvim-tree/nvim-web-devicons', + }, + config = function() + require("nvim-tree").setup {} + end + } + use { + 'nvim-lualine/lualine.nvim', + requires = { 'nvim-tree/nvim-web-devicons', opt = true } + } + -- use 'feline-nvim/feline.nvim' + + -- Synchroniser les paquetages si c'est la première exécution + if packer_bootstrap then + require('packer').sync() + end +end) + diff --git a/config/nvim/lua/core/style.lua b/config/nvim/lua/core/style.lua new file mode 100644 index 0000000..65f4c4f --- /dev/null +++ b/config/nvim/lua/core/style.lua @@ -0,0 +1,6 @@ +-- Activer les couleurs du terminal +vim.o.termguicolors = true + +-- Changer la palette de couleurs +vim.cmd [[ colorscheme catppuccin ]] +