Compare commits
	
		
			4 Commits
		
	
	
		
			7e85124b10
			...
			nvimlua
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c0065fa945 | |||
| 23ba611075 | |||
| bd11e06a19 | |||
| 99f81ebf0a | 
							
								
								
									
										5
									
								
								nvim/.config/nvim/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								nvim/.config/nvim/init.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| require('plugins') | ||||
| require('settings') | ||||
| require('mappings') | ||||
|  | ||||
| require('lsp') | ||||
| @@ -1,18 +0,0 @@ | ||||
| source $HOME/.config/nvim/plugins/plugins.vim | ||||
| source $HOME/.config/nvim/general/settings.vim | ||||
| source $HOME/.config/nvim/general/mappings.vim | ||||
| " source $HOME/.config/nvim/general/completion.vim | ||||
|  | ||||
| source $HOME/.config/nvim/plugins/lightline.vim | ||||
| source $HOME/.config/nvim/plugins/nvim-comp.vim | ||||
| source $HOME/.config/nvim/plugins/vimtex.vim | ||||
|  | ||||
| lua <<EOF | ||||
| require("lsp") | ||||
| EOF | ||||
|  | ||||
| " require("comp") | ||||
|  | ||||
| " bug fix with telescope and insert mode https://GitHub.com/vim telescope/telescope.vim/issues/82 | ||||
| autocmd FileType TelescopePrompt | ||||
|        \ call deoplete#custom#buffer_option('auto_complete', v:false) | ||||
| @@ -1,78 +0,0 @@ | ||||
| -- Configuration for nvim-compe | ||||
|  | ||||
| local utils = require('utils') | ||||
|  | ||||
| vim.cmd [[set shortmess+=c]] | ||||
| utils.opt('o', 'completeopt', 'menuone,noselect') | ||||
|  | ||||
| require'compe'.setup { | ||||
|     enabled = true; | ||||
|     autocomplete = true; | ||||
|     debug = false; | ||||
|     min_length = 1; | ||||
|     preselect = 'enable'; | ||||
|     throttle_time = 80; | ||||
|     source_timeout = 200; | ||||
|     incomplete_delay = 400; | ||||
|     allow_prefix_unmatch = false; | ||||
|     max_abbr_width = 1000; | ||||
|     max_kind_width = 1000; | ||||
|     max_menu_width = 1000000; | ||||
|     documentation = true; | ||||
|  | ||||
|  | ||||
|     source = { | ||||
|         path = true; | ||||
|         buffer = true; | ||||
|         calc = false; | ||||
|         vsnip = true; | ||||
|         nvim_lsp = true; | ||||
|         nvim_lua = false; | ||||
|         spell = true; | ||||
|         tags = true; | ||||
|         snippets_nvim = false; | ||||
|         treesitter = true; | ||||
|   }; | ||||
| } | ||||
|  | ||||
| local t = function(str) | ||||
|   return vim.api.nvim_replace_termcodes(str, true, true, true) | ||||
| end | ||||
|  | ||||
| local check_back_space = function() | ||||
|     local col = vim.fn.col('.') - 1 | ||||
|     if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then | ||||
|         return true | ||||
|     else | ||||
|         return false | ||||
|     end | ||||
| end | ||||
|  | ||||
| -- Use (s-)tab to: | ||||
| --- move to prev/next item in completion menuone | ||||
| --- jump to prev/next snippet's placeholder | ||||
| _G.tab_complete = function() | ||||
|   if vim.fn.pumvisible() == 1 then | ||||
|     return t "<C-n>" | ||||
|   elseif vim.fn.call("vsnip#available", {1}) == 1 then | ||||
|     return t "<Plug>(vsnip-expand-or-jump)" | ||||
|   elseif check_back_space() then | ||||
|     return t "<Tab>" | ||||
|   else | ||||
|     return vim.fn['compe#complete']() | ||||
|   end | ||||
| end | ||||
| _G.s_tab_complete = function() | ||||
|   if vim.fn.pumvisible() == 1 then | ||||
|     return t "<C-p>" | ||||
|   elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then | ||||
|     return t "<Plug>(vsnip-jump-prev)" | ||||
|   else | ||||
|     return t "<S-Tab>" | ||||
|   end | ||||
| end | ||||
|  | ||||
| utils.map("i", "<Tab>", "v:lua.tab_complete()", {expr = true}) | ||||
| utils.map("s", "<Tab>", "v:lua.tab_complete()", {expr = true}) | ||||
| utils.map("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true}) | ||||
| utils.map("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true}) | ||||
							
								
								
									
										98
									
								
								nvim/.config/nvim/lua/completion.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								nvim/.config/nvim/lua/completion.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| local has_words_before = function() | ||||
|   if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then | ||||
|     return false | ||||
|   end | ||||
|   local line, col = unpack(vim.api.nvim_win_get_cursor(0)) | ||||
|   return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil | ||||
| end | ||||
|  | ||||
| local feedkey = function(key, mode) | ||||
|   vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) | ||||
| end | ||||
|  | ||||
| local lsp_symbols = { | ||||
|     Text = "   (Text) ", | ||||
|     Method = "   (Method)", | ||||
|     Function = "   (Function)", | ||||
|     Constructor = "   (Constructor)", | ||||
|     Field = " ﴲ  (Field)", | ||||
|     Variable = "[] (Variable)", | ||||
|     Class = "   (Class)", | ||||
|     Interface = " ﰮ  (Interface)", | ||||
|     Module = "   (Module)", | ||||
|     Property = " 襁 (Property)", | ||||
|     Unit = "   (Unit)", | ||||
|     Value = "   (Value)", | ||||
|     Enum = " 練 (Enum)", | ||||
|     Keyword = "   (Keyword)", | ||||
|     Snippet = "   (Snippet)", | ||||
|     Color = "   (Color)", | ||||
|     File = "   (File)", | ||||
|     Reference = "   (Reference)", | ||||
|     Folder = "   (Folder)", | ||||
|     EnumMember = "   (EnumMember)", | ||||
|     Constant = " ﲀ  (Constant)", | ||||
|     Struct = " ﳤ  (Struct)", | ||||
|     Event = "   (Event)", | ||||
|     Operator = "   (Operator)", | ||||
|     TypeParameter = "   (TypeParameter)", | ||||
| } | ||||
|  | ||||
| local cmp = require'cmp' | ||||
| cmp.setup{ | ||||
|     completion = { | ||||
|         completeopt =  "menuone,noinsert,noselect", | ||||
|     }, | ||||
|     formatting = { | ||||
|         format = function(entry, vim_item) | ||||
|             -- fancy icons and a name of kind | ||||
|             vim_item.kind = lsp_symbols[vim_item.kind] | ||||
|             -- set a name for each source | ||||
|             vim_item.menu = ({ | ||||
|                 buffer = "[Buffer]", | ||||
|                 nvim_lsp = "[LSP]", | ||||
|                 vsnip = "[vSnip]", | ||||
|                 path = "[Path]", | ||||
|                 spell = "[Spell]", | ||||
|             })[entry.source.name] | ||||
|             return vim_item | ||||
|         end, | ||||
|     }, | ||||
|     snippet = { | ||||
|         expand = function(args) | ||||
|             vim.fn["vsnip#anonymous"](args.body) | ||||
|         end, | ||||
|     }, | ||||
|     mapping = { | ||||
|         -- ["<cr>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Replace}), | ||||
|         ["<cr>"] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Insert}), | ||||
|         ["<Tab>"] = cmp.mapping(function(fallback) | ||||
|             if vim.fn.pumvisible() == 1 then | ||||
|                 feedkey("<C-n>", "n") | ||||
|             elseif vim.fn["vsnip#available"]() == 1 then | ||||
|                 feedkey("<Plug>(vsnip-expand-or-jump)", "") | ||||
|             elseif has_words_before() then | ||||
|                 cmp.complete() | ||||
|             else | ||||
|                 fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`. | ||||
|             end | ||||
|         end, { "i", "s" }), | ||||
|  | ||||
|         ["<S-Tab>"] = cmp.mapping(function() | ||||
|             if vim.fn.pumvisible() == 1 then | ||||
|                 feedkey("<C-p>", "n") | ||||
|             elseif vim.fn["vsnip#jumpable"](-1) == 1 then | ||||
|                 feedkey("<Plug>(vsnip-jump-prev)", "") | ||||
|             end | ||||
|         end, { "i", "s" }), | ||||
|     }, | ||||
|     source = { | ||||
|         { name = 'buffer' }, | ||||
|         { name = 'vsnip' }, | ||||
|         { name = 'path' }, | ||||
|         { name = 'spell' }, | ||||
|     } | ||||
| } | ||||
|  | ||||
| vim.cmd [[autocmd FileType TelescopePrompt lua require('cmp').setup.buffer { enabled = false }]] | ||||
| vim.g.vsnip_snippet_dir = '~/.config/nvim/vsnips' | ||||
							
								
								
									
										23
									
								
								nvim/.config/nvim/lua/config/vimtex.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								nvim/.config/nvim/lua/config/vimtex.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| vim.g.maplocalleader = " " | ||||
|  | ||||
| vim.g.vimtex_compiler_latex = {} | ||||
| vim.g.vimtex_compiler_latex["backend"] = 'nvim' | ||||
|  | ||||
| vim.g.vimtex_compiler_latex['backend'] = 'nvim' | ||||
| vim.g.vimtex_compiler_latex['background'] = 1 | ||||
| vim.g.vimtex_compiler_latex[ 'build_dir'] = '' | ||||
| vim.g.vimtex_compiler_latex[ 'callback'] = 0 | ||||
| vim.g.vimtex_compiler_latex[ 'continuous'] = 1 | ||||
| vim.g.vimtex_compiler_latex[ 'options'] = { '-pdf', | ||||
| '-verbose', | ||||
| '-file-line-error', | ||||
| '-synctex=1', | ||||
| '-interaction=nonstopmode', | ||||
| '-silent', | ||||
| '-shell-escape', | ||||
|  } | ||||
|  | ||||
| vim.g.vimtex_view_method = 'zathura' | ||||
|  | ||||
| -- Les fichiers sty et cls sont vus comme des fichiers tex | ||||
| vim.cmd("autocmd BufRead,BufNewFile *.{sty,cls} setlocal syntax=tex") | ||||
							
								
								
									
										22
									
								
								nvim/.config/nvim/lua/mappings.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								nvim/.config/nvim/lua/mappings.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| local map = vim.api.nvim_set_keymap | ||||
| local default_opts = {noremap = true, silent = true} | ||||
|  | ||||
| -- move around splits using Ctrl + {h,j,k,l} | ||||
| map('n', '<C-h>', '<C-w>h', default_opts) | ||||
| map('n', '<C-j>', '<C-w>j', default_opts) | ||||
| map('n', '<C-k>', '<C-w>k', default_opts) | ||||
| map('n', '<C-l>', '<C-w>l', default_opts) | ||||
|  | ||||
| -- Align blocks of text and keep them selected | ||||
| map('v', '<', '<gv', {}) | ||||
| map('v', '>', '>gv', {}) | ||||
|  | ||||
|  | ||||
| -- Automatically spell check last error in insert mode | ||||
| map('i', '<c-f>', '<c-g>u<Esc>[s1z=`]a<c-g>u', default_opts) | ||||
|  | ||||
| -- Find files using Telescope command-line sugar. | ||||
| map('n', '<leader>e', '<cmd>Telescope find_files<cr>', {}) | ||||
| map('n', '<leader>g', '<cmd>Telescope live_grep<cr>', {}) | ||||
| map('n', '<leader>b', '<cmd>Telescope buffers<cr>', {}) | ||||
| map('n', '<leader>h', '<cmd>Telescope help_tags<cr>', {}) | ||||
							
								
								
									
										86
									
								
								nvim/.config/nvim/lua/plugins.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								nvim/.config/nvim/lua/plugins.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,86 @@ | ||||
| -- Only required if you have packer configured as `opt` | ||||
| vim.cmd [[packadd packer.nvim]] | ||||
|  | ||||
| return require('packer').startup(function() | ||||
|     use 'morhetz/gruvbox' | ||||
|  | ||||
|     -- Status line | ||||
|     use { | ||||
|         'hoob3rt/lualine.nvim', | ||||
|         config = function () | ||||
|             require('lualine').setup{ | ||||
|                 options = { | ||||
|                     icons_enabled = true, | ||||
|                     theme = 'gruvbox', | ||||
|                     component_separators = {'', ''}, | ||||
|                     section_separators = {'', ''}, | ||||
|                     disabled_filetypes = {} | ||||
|                 }, | ||||
|                 sections = { | ||||
|                     lualine_a = {'mode'}, | ||||
|                     lualine_b = {'branch'}, | ||||
|                     lualine_c = {'filename'}, | ||||
| 		    lualine_x = { | ||||
| 			    { 'diagnostics', sources = {"nvim_lsp"}, symbols = {error = ' ', warn = ' ', info = ' ', hint = ' '} }, | ||||
| 			    'encoding', | ||||
| 			    'filetype' | ||||
| 		    }, | ||||
|                     lualine_y = {'progress'}, | ||||
|                     lualine_z = {'location'} | ||||
|                 }, | ||||
|                 inactive_sections = { | ||||
|                     lualine_a = {}, | ||||
|                     lualine_b = {}, | ||||
|                     lualine_c = {'filename'}, | ||||
|                     lualine_x = {'location'}, | ||||
|                     lualine_y = {}, | ||||
|                     lualine_z = {} | ||||
|                 }, | ||||
|                 tabline = {}, | ||||
|                 extensions = {} | ||||
|             } | ||||
|         end | ||||
|     } | ||||
|  | ||||
|     use 'tpope/vim-fugitive' | ||||
|     use 'mhinz/vim-signify' | ||||
|  | ||||
|     use 'tpope/vim-surround' | ||||
|     use 'tpope/vim-repeat' | ||||
|  | ||||
|     use 'neovim/nvim-lspconfig' | ||||
|     use { | ||||
|         "hrsh7th/nvim-cmp", | ||||
|         event = 'InsertEnter', | ||||
|         config = [[require('completion')]], | ||||
|         requires = { | ||||
|             -- 'hrsh7th/vim-vsnip-integ', | ||||
|             'rafamadriz/friendly-snippets', | ||||
|         }, | ||||
|     } | ||||
|     use {"hrsh7th/vim-vsnip", after = "nvim-cmp"} | ||||
|     use {"hrsh7th/cmp-vsnip", after = "nvim-cmp"} | ||||
|     use {"hrsh7th/cmp-buffer", after = "nvim-cmp"} | ||||
|     use {'hrsh7th/cmp-path', after = "nvim-cmp"} | ||||
|     use {"hrsh7th/cmp-nvim-lsp", after = "nvim-cmp"} | ||||
|     use {'f3fora/cmp-spell', after = "nvim-cmp"} | ||||
|  | ||||
|     use 'nvim-lua/popup.nvim' | ||||
|     use { | ||||
|         'nvim-telescope/telescope.nvim', | ||||
|         requires = { {'nvim-lua/plenary.nvim'} } | ||||
|     } | ||||
|  | ||||
|     use { | ||||
|         'lervag/vimtex', | ||||
|         config = [[require('config.vimtex')]], | ||||
|     } | ||||
|  | ||||
|     --  Highlight on Yank  | ||||
|     use 'machakann/vim-highlightedyank' | ||||
|     --  Autoclose parenthesis | ||||
|     use 'jiangmiao/auto-pairs' | ||||
|  | ||||
|     use 'kyazdani42/nvim-web-devicons' | ||||
|  | ||||
| end) | ||||
							
								
								
									
										51
									
								
								nvim/.config/nvim/lua/settings.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								nvim/.config/nvim/lua/settings.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| local cmd = vim.cmd             -- execute Vim commands | ||||
| local exec = vim.api.nvim_exec         -- execute Vimscript | ||||
| -- local fn = vim.fn               -- call Vim functions | ||||
| local g = vim.g                 -- global variables | ||||
| local opt = vim.opt                 -- global/buffer/windows-scoped options | ||||
|  | ||||
| g.mapleader = ' '             -- Leaderkey | ||||
| g.showmode = true | ||||
| g.hidden = true                 -- Required to keep multiple buffers open multiple buffers | ||||
| opt.mouse = 'a'                -- enable mouse | ||||
| opt.clipboard = 'unnamedplus'        -- copy/paste with system | ||||
| opt.swapfile = false            -- no swapfile | ||||
|  | ||||
| opt.wrap = true             -- Display long lines as just one line | ||||
| opt.expandtab = true             -- Use space instead of tabs | ||||
| opt.tabstop = 4             -- Insert 4 spaces for a tab | ||||
| opt.shiftwidth = 4            -- Change the number of space characters inserted for indentation | ||||
| opt.smarttab = true             -- Makes tabbing smarter will realize you have 2 vs 4 | ||||
| opt.autoindent = true                   -- Good auto indent | ||||
| opt.foldmethod='indent' | ||||
|  | ||||
| opt.number = true             -- show line number | ||||
| opt.relativenumber = true         -- show relative line number | ||||
| opt.cursorline = true             -- highlight current line | ||||
|  | ||||
| opt.ignorecase = true             -- Ignore case on search | ||||
| opt.smartcase = true             -- ignore lowercse for the whoel pattern | ||||
|  | ||||
| -- opt.completeopt = 'menu,noselect,noinsert' -- completion options | ||||
|  | ||||
| opt.spell = true | ||||
| opt.spelllang = {'fr', 'en'} | ||||
|  | ||||
| opt.nrformats = opt.nrformats + 'alpha' | ||||
|  | ||||
| g.showtabline = true | ||||
|  | ||||
| -- don't auto commenting new lines | ||||
| cmd[[au BufEnter * set fo-=c fo-=r fo-=o]] | ||||
|  | ||||
| opt.showmatch = true            -- show parenthethis match | ||||
|  | ||||
| -- Highlight on yank | ||||
| exec([[ | ||||
|   augroup YankHighlight | ||||
|     autocmd! | ||||
|     autocmd TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=700} | ||||
|   augroup end | ||||
| ]], false) | ||||
|  | ||||
| cmd('colorscheme gruvbox') | ||||
		Reference in New Issue
	
	Block a user