Compare commits
4 commits
master
...
modern-neo
Author | SHA1 | Date | |
---|---|---|---|
|
f6649faac0 | ||
|
6aedca76f7 | ||
|
71550e4c96 | ||
|
b275d74db5 |
7 changed files with 617 additions and 11 deletions
54
config/nvim/init.lua
Normal file
54
config/nvim/init.lua
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
-- http://vimcasts.org/episodes/meet-neovim/
|
||||||
|
-- `^=` means prepend
|
||||||
|
vim.api.nvim_command('set runtimepath^=~/.vim')
|
||||||
|
vim.opt.runtimepath:append(",~/.vim/after")
|
||||||
|
vim.api.nvim_command('let &packpath = &runtimepath')
|
||||||
|
|
||||||
|
require("plugins")
|
||||||
|
|
||||||
|
vim.cmd.source("~/.config/nvim/init.old.vim")
|
||||||
|
|
||||||
|
-- Colorscheme --
|
||||||
|
if vim.fn.has("termguicolors") then
|
||||||
|
vim.o.termguicolors = true
|
||||||
|
end
|
||||||
|
vim.cmd([[colorscheme base16-gruvbox-dark-pale]])
|
||||||
|
|
||||||
|
|
||||||
|
-- Sets how long the cursor needs to wait before showing the diagnostic modal
|
||||||
|
vim.o.updatetime = 250
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = false,
|
||||||
|
signs = true,
|
||||||
|
underline = true,
|
||||||
|
update_in_insert = false,
|
||||||
|
severity_sort = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Show code diagnostics in a floating window instead of inline
|
||||||
|
-- https://github.com/neovim/nvim-lspconfig/wiki/UI-Customization#show-line-diagnostics-automatically-in-hover-window
|
||||||
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
callback = function(args)
|
||||||
|
vim.api.nvim_create_autocmd("CursorHold", {
|
||||||
|
buffer = bufnr,
|
||||||
|
callback = function()
|
||||||
|
local opts = {
|
||||||
|
focusable = false,
|
||||||
|
close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" },
|
||||||
|
border = 'rounded',
|
||||||
|
source = 'always',
|
||||||
|
prefix = ' ',
|
||||||
|
scope = 'cursor',
|
||||||
|
}
|
||||||
|
vim.diagnostic.open_float(nil, opts)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
require("plugins-config")
|
||||||
|
require("keys")
|
||||||
|
|
||||||
|
|
272
config/nvim/init.old.vim
Normal file
272
config/nvim/init.old.vim
Normal file
|
@ -0,0 +1,272 @@
|
||||||
|
set nocompatible
|
||||||
|
if &shell =~# 'fish$'
|
||||||
|
set shell=sh
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Allow backspacing over everything in insert mode.
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
set number
|
||||||
|
set relativenumber
|
||||||
|
"[Hide/show the white-space and more invisible symbols]"
|
||||||
|
set list
|
||||||
|
set listchars=tab:▸\ ,nbsp:¬,trail:-
|
||||||
|
" | | + Trailing spaces
|
||||||
|
" | + Non breakable spaces
|
||||||
|
" + Tabulations: `tab xy`, x: first char, y: following chars
|
||||||
|
set nojoinspaces
|
||||||
|
"[Indent & Tab/mode-line settings]"
|
||||||
|
set breakindent
|
||||||
|
set nopaste
|
||||||
|
set smarttab
|
||||||
|
set tabstop=4 " tabs size on screen "
|
||||||
|
set expandtab " <tab> inserts spaces "
|
||||||
|
set autoindent
|
||||||
|
set copyindent " copy existing tab/spaces mix on newline "
|
||||||
|
set smartindent " overruled by cindent "
|
||||||
|
set cinwords=except,finally,def,class,with,do,if,elif,else,for,while,try,switch
|
||||||
|
set cinoptions+=l1 " switch case label alignement, :h cinoptions-values "
|
||||||
|
set shiftwidth=4 " number of space to use on indent. Use tabstop if 0"
|
||||||
|
"set softtabstop=4
|
||||||
|
"[Matching chars]"
|
||||||
|
set showmatch
|
||||||
|
set matchpairs=\":\"
|
||||||
|
set matchpairs+=(:)
|
||||||
|
set matchpairs+={:}
|
||||||
|
set matchpairs+=[:]
|
||||||
|
"[TextWidth settings]"
|
||||||
|
set textwidth=0
|
||||||
|
"[Look for a single modeline in files]"
|
||||||
|
set modeline
|
||||||
|
set modelines=1
|
||||||
|
|
||||||
|
set ruler " show the cursor position all the time
|
||||||
|
set showcmd " display incomplete commands
|
||||||
|
set laststatus=2
|
||||||
|
set noshowmode
|
||||||
|
|
||||||
|
"[Command mode autocompletion]"
|
||||||
|
set wildmenu
|
||||||
|
set wildmode=longest:full,full
|
||||||
|
" `------------|---- First complete till longest common string, open wildmenu
|
||||||
|
" `---- Then, complete next full match
|
||||||
|
|
||||||
|
set ttimeout " time out for key codes
|
||||||
|
set ttimeoutlen=100 " wait up to 100ms after Esc for special key
|
||||||
|
|
||||||
|
"[Turn backup off and value of history]"
|
||||||
|
set nobackup
|
||||||
|
set noswapfile
|
||||||
|
set history=1000
|
||||||
|
set nowritebackup
|
||||||
|
set undolevels=5000
|
||||||
|
|
||||||
|
"[Setup history file]"
|
||||||
|
set viminfo=%,<0,'10,/16,:16,h,f0
|
||||||
|
" | | | | | | + file marks 0-9,A-Z 0=NOT stored
|
||||||
|
" | | | | | + disable 'hlsearch' loading viminfo
|
||||||
|
" | | | | + command-line history saved
|
||||||
|
" | | | + search history saved
|
||||||
|
" | | + files marks saved
|
||||||
|
" | + lines saved each register (old name for <, vi6.2): NOT STORED
|
||||||
|
" + save/restore buffer list
|
||||||
|
if !has('nvim')
|
||||||
|
"[Declutter $HOME]"
|
||||||
|
set viminfo+=n~/.vim/cache/.viminfo
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Show @@@ in the last line if it is truncated.
|
||||||
|
set display=truncate
|
||||||
|
"[Splitting rules]"
|
||||||
|
set splitbelow
|
||||||
|
set splitright
|
||||||
|
set equalalways
|
||||||
|
|
||||||
|
" Show a few lines of context around the cursor.
|
||||||
|
set scrolloff=5
|
||||||
|
" Try to keep the cursor in the same column while scrolling
|
||||||
|
set nostartofline
|
||||||
|
|
||||||
|
set autochdir
|
||||||
|
set autoread
|
||||||
|
set autowrite
|
||||||
|
|
||||||
|
"[Shared with OS clipboard]"
|
||||||
|
set clipboard=unnamed
|
||||||
|
|
||||||
|
"[For regular expressions turn magic on, use \v to get regex parent]"
|
||||||
|
set magic
|
||||||
|
"[Search settings]"
|
||||||
|
set hlsearch
|
||||||
|
set incsearch
|
||||||
|
set smartcase
|
||||||
|
set ignorecase
|
||||||
|
set wrapscan
|
||||||
|
"[When on, the ":substitute" flag 'g' is default on]"
|
||||||
|
set nogdefault
|
||||||
|
"[Enable realtime feedback for substitution]"
|
||||||
|
if has("nvim")
|
||||||
|
set inccommand=nosplit
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
"[Kitty doesn't support background color erase]"
|
||||||
|
"let &t_ut=''
|
||||||
|
"let base16colorspace=256
|
||||||
|
"set background=dark
|
||||||
|
"colorscheme base16-default-dark
|
||||||
|
""[Fix background transparency]"
|
||||||
|
"if has("autocmd")
|
||||||
|
" autocmd ColorScheme * highlight Normal ctermbg=None
|
||||||
|
" autocmd ColorScheme * highlight NonText ctermbg=None
|
||||||
|
"endif
|
||||||
|
|
||||||
|
|
||||||
|
"[Define the leader key]"
|
||||||
|
let mapleader=","
|
||||||
|
let maplocalleader=","
|
||||||
|
"[Reselect visual block after indent/outdent]"
|
||||||
|
vnoremap < <gv
|
||||||
|
vnoremap > >gv
|
||||||
|
"[Improve up/down movement on wrapped lines]"
|
||||||
|
"[If preceded by a count, jump actual lines. Also if > 5, save to jumplist]"
|
||||||
|
nnoremap <expr> j v:count ? (v:count > 5 ? "m'" . v:count : '') . 'j' : 'gj'
|
||||||
|
nnoremap <expr> k v:count ? (v:count > 5 ? "m'" . v:count : '') . 'k' : 'gk'
|
||||||
|
"[Easy split navigation]"
|
||||||
|
nnoremap <C-j> <C-W>j
|
||||||
|
nnoremap <C-k> <C-W>k
|
||||||
|
nnoremap <C-h> <C-W>h
|
||||||
|
nnoremap <C-l> <C-W>l
|
||||||
|
nnoremap <C-Up> <C-W>k
|
||||||
|
nnoremap <C-Down> <C-W>j
|
||||||
|
nnoremap <C-Left> <C-W>h
|
||||||
|
nnoremap <C-Right> <C-W>l
|
||||||
|
"[Locate the desired objects in the center of the screen]"
|
||||||
|
nnoremap <silent> n nzz
|
||||||
|
nnoremap <silent> N Nzz
|
||||||
|
nnoremap <silent> * *zz
|
||||||
|
nnoremap <silent> # #zz
|
||||||
|
"[New line under/bellow current line without jump to insert-mode]"
|
||||||
|
nnoremap <leader>o o<Esc>
|
||||||
|
nnoremap <leader>O O<Esc>
|
||||||
|
"[Clear search highlights]"
|
||||||
|
nnoremap // :nohlsearch<CR>
|
||||||
|
"[Reflow current paragraph]"
|
||||||
|
"[http://stevelosh.com/blog/2010/09/coming-home-to-vim/]"
|
||||||
|
nnoremap <silent> <leader>q :call ReflowParagraph()<CR>
|
||||||
|
" http://stackoverflow.com/questions/1005/getting-root-permissions-on-a-file-inside-of-vi
|
||||||
|
cmap w!! w !sudo tee >/dev/null %
|
||||||
|
"[To disable the arrow keys]"
|
||||||
|
for prefix in ['i', 'n', 'v']
|
||||||
|
for key in ['<Up>', '<Down>', '<Left>', '<Right>']
|
||||||
|
execute prefix . "noremap " . key . " <Nop>"
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
"[Switch quickly between source and header]"
|
||||||
|
nnoremap <leader>f :e <C-r>=SwapExtension()<CR><CR>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" Do incremental searching when it's possible to timeout.
|
||||||
|
if has('reltime')
|
||||||
|
set incsearch
|
||||||
|
endif
|
||||||
|
|
||||||
|
" LaTeX ftdetect
|
||||||
|
let g:tex_flavor = "latex"
|
||||||
|
|
||||||
|
" Switch syntax highlighting on when the terminal has colors or when using the
|
||||||
|
" GUI (which always has colors).
|
||||||
|
if &t_Co > 2 || has("gui_running")
|
||||||
|
" Revert with ":syntax off".
|
||||||
|
syntax on
|
||||||
|
|
||||||
|
" I like highlighting strings inside C comments.
|
||||||
|
" Revert with ":unlet c_comment_strings".
|
||||||
|
let c_comment_strings=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
"[Reflow current paragraph]"
|
||||||
|
function! ReflowParagraph()
|
||||||
|
let l:view = winsaveview()
|
||||||
|
normal gwip
|
||||||
|
call winrestview(l:view)
|
||||||
|
endfunction
|
||||||
|
"[Remove tabs and spaces at the end of lines]"
|
||||||
|
function! DeleteTrailingTWS()
|
||||||
|
"[Do not clean up trailing spaces in binary mode or in diff files]"
|
||||||
|
if &binary || &ft =~ 'diff'
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
let l:view = winsaveview()
|
||||||
|
silent %s/[ \t]*$//g
|
||||||
|
silent %s/\s\+$//ge
|
||||||
|
call winrestview(l:view)
|
||||||
|
endfunction
|
||||||
|
"[Make the scripts executable]"
|
||||||
|
function! ChangeScriptMode()
|
||||||
|
if getline(1) =~ "#!"
|
||||||
|
if getline(1) =~ "bin/"
|
||||||
|
silent !chmod +x <afile>
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
"[Swap file extensions, for example cpp/h]"
|
||||||
|
"https://stackoverflow.com/a/22145246"
|
||||||
|
function! SwapExtension()
|
||||||
|
let [rest, ext] = [expand('%:r'), expand('%:e')]
|
||||||
|
if ext ==? 'h'
|
||||||
|
if filereadable(rest . '.c')
|
||||||
|
let ext = 'c'
|
||||||
|
elseif filereadable(rest . '.cpp')
|
||||||
|
let ext = 'cpp'
|
||||||
|
endif
|
||||||
|
elseif ext ==? 'cpp' || ext ==? 'c'
|
||||||
|
let ext = 'h'
|
||||||
|
"swap between vertex and fragment shader"
|
||||||
|
elseif ext ==? 'vsh'
|
||||||
|
let ext = 'fsh'
|
||||||
|
elseif ext ==? 'fsh'
|
||||||
|
let ext = 'vsh'
|
||||||
|
endif
|
||||||
|
return rest . '.' . ext
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Only do this part when compiled with support for autocommands.
|
||||||
|
if has("autocmd")
|
||||||
|
|
||||||
|
" Enable file type detection. Use the default filetype settings, so that
|
||||||
|
" mail gets 'tw' set to 72, 'cindent' is on in C files, etc. Also load
|
||||||
|
" indent files, to automatically do language-dependent indenting.
|
||||||
|
" Revert with ":filetype off".
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
" Put these in an autocmd group, so that you can revert them with:
|
||||||
|
" ":augroup vimStartup | au! | augroup END"
|
||||||
|
augroup vimStartup
|
||||||
|
au!
|
||||||
|
|
||||||
|
" When editing a file, always jump to the last known cursor position.
|
||||||
|
" Don't do it when the position is invalid, when inside an event handler
|
||||||
|
" (happens when dropping a file on gvim) and for a commit message (it's
|
||||||
|
" likely a different one than last time).
|
||||||
|
autocmd BufReadPost *
|
||||||
|
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' |
|
||||||
|
\ exe "normal! g`\"" |
|
||||||
|
\ endif
|
||||||
|
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
"[Try not to pollute the undo tree (https://vi.stackexchange.com/a/13401)]"
|
||||||
|
autocmd BufWritePre *
|
||||||
|
\ try |
|
||||||
|
\ undojoin |
|
||||||
|
\ catch /^Vim\%((\a\+)\)\=:E790/ |
|
||||||
|
\ finally |
|
||||||
|
\ call DeleteTrailingTWS() |
|
||||||
|
\ endtry
|
||||||
|
|
||||||
|
if has("unix") || has("mac")
|
||||||
|
autocmd BufWritePost * call ChangeScriptMode()
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif " has("autocmd")
|
|
@ -1,4 +0,0 @@
|
||||||
" http://vimcasts.org/episodes/meet-neovim/
|
|
||||||
set runtimepath^=~/.vim runtimepath+=~/.vim/after
|
|
||||||
let &packpath=&runtimepath
|
|
||||||
source ~/.vimrc
|
|
59
config/nvim/lua/keys.lua
Normal file
59
config/nvim/lua/keys.lua
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
-- Global mappings.
|
||||||
|
|
||||||
|
-- Telescope --
|
||||||
|
local tsbuiltin = require('telescope.builtin')
|
||||||
|
|
||||||
|
-- Which key --
|
||||||
|
local wk = require('which-key')
|
||||||
|
wk.register({
|
||||||
|
["space"] = {
|
||||||
|
e = {vim.diagnostic.open_float, "Open diagnostic float"},
|
||||||
|
q = {vim.diagnostic.setloclist, "Add diagnostics to location list"},
|
||||||
|
},
|
||||||
|
["<leader>"] = {
|
||||||
|
e = {
|
||||||
|
name = "Telescope", -- optional group name
|
||||||
|
f = {tsbuiltin.find_files, "Find file"},
|
||||||
|
F = {tsbuiltin.git_files, "Find file in git repo"},
|
||||||
|
g = {tsbuiltin.live_grep, "Live grep"},
|
||||||
|
o = {tsbuiltin.oldfiles, "Find previously open files"},
|
||||||
|
q = {tsbuiltin.quickfix, "List items in quickfix"},
|
||||||
|
r = {tsbuiltin.lsp_references, "List LSP references under the cursor"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||||
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
|
||||||
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
|
||||||
|
|
||||||
|
-- Use LspAttach autocommand to only map the following keys
|
||||||
|
-- after the language server attaches to the current buffer
|
||||||
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
|
||||||
|
callback = function(ev)
|
||||||
|
-- Enable completion triggered by <c-x><c-o>
|
||||||
|
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
|
||||||
|
|
||||||
|
-- Buffer local mappings.
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
local opts = { buffer = ev.buf }
|
||||||
|
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
|
||||||
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
|
||||||
|
vim.keymap.set('n', 'gk', vim.lsp.buf.hover, opts)
|
||||||
|
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
||||||
|
vim.keymap.set('n', '<leader>k', vim.lsp.buf.signature_help, opts)
|
||||||
|
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
|
||||||
|
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
|
||||||
|
vim.keymap.set('n', '<space>wl', function()
|
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
|
||||||
|
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
|
||||||
|
vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
|
||||||
|
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
|
||||||
|
vim.keymap.set('n', '<space>f', function()
|
||||||
|
vim.lsp.buf.format { async = true }
|
||||||
|
end, opts)
|
||||||
|
end,
|
||||||
|
})
|
127
config/nvim/lua/plugins-config.lua
Normal file
127
config/nvim/lua/plugins-config.lua
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
-- completion config (nvim-cmp) --
|
||||||
|
local cmp = require("cmp")
|
||||||
|
local luasnip = require("luasnip")
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
-- REQUIRED - you must specify a snippet engine
|
||||||
|
expand = function(args)
|
||||||
|
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
window = {
|
||||||
|
-- completion = cmp.config.window.bordered(),
|
||||||
|
-- documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
|
-- ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
-- https://github.com/hrsh7th/nvim-cmp/wiki/Example-mappings
|
||||||
|
['<CR>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
if luasnip.expandable() then
|
||||||
|
luasnip.expand()
|
||||||
|
else
|
||||||
|
cmp.confirm({ select = true })
|
||||||
|
end
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end),
|
||||||
|
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.locally_jumpable() then
|
||||||
|
luasnip.jump()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.locally_jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
}),
|
||||||
|
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
-- { name = 'vsnip' }, -- For vsnip users.
|
||||||
|
{ name = 'luasnip' }, -- For luasnip users.
|
||||||
|
-- { name = 'ultisnips' }, -- For ultisnips users.
|
||||||
|
-- { name = 'snippy' }, -- For snippy users.
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Set configuration for specific filetype.
|
||||||
|
cmp.setup.filetype('gitcommit', {
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||||
|
cmp.setup.cmdline({ '/', '?' }, {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = {
|
||||||
|
{ name = 'buffer' }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||||
|
cmp.setup.cmdline(':', {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'path' }
|
||||||
|
}, {
|
||||||
|
{ name = 'cmdline' }
|
||||||
|
}),
|
||||||
|
matching = { disallow_symbol_nonprefix_matching = false }
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Set up lspconfig.
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
|
|
||||||
|
-- Setup language servers.
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
lspconfig.clangd.setup {
|
||||||
|
capabilities = capabilities
|
||||||
|
}
|
||||||
|
lspconfig.pyright.setup {
|
||||||
|
capabilities = capabilities
|
||||||
|
}
|
||||||
|
-- lspconfig.tsserver.setup {}
|
||||||
|
lspconfig.rust_analyzer.setup {
|
||||||
|
-- Server-specific settings. See `:help lspconfig-setup`
|
||||||
|
settings = {
|
||||||
|
['rust-analyzer'] = {},
|
||||||
|
},
|
||||||
|
capabilities = capabilities
|
||||||
|
}
|
||||||
|
|
||||||
|
-- LSP signature --
|
||||||
|
local lsp_sig_cfg = {}
|
||||||
|
require('lsp_signature').setup(lsp_sig_cfg)
|
||||||
|
|
||||||
|
-- Lualine --
|
||||||
|
require("lualine").setup {
|
||||||
|
options = {
|
||||||
|
icons_enabled = false,
|
||||||
|
theme = "base16"
|
||||||
|
},
|
||||||
|
}
|
95
config/nvim/lua/plugins.lua
Normal file
95
config/nvim/lua/plugins.lua
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or 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({
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
init = function()
|
||||||
|
vim.o.timeout = true
|
||||||
|
vim.o.timeoutlen = 500
|
||||||
|
end
|
||||||
|
},
|
||||||
|
"RRethy/base16-nvim",
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
"ray-x/lsp_signature.nvim",
|
||||||
|
-- {
|
||||||
|
-- "itchyny/lightline.vim",
|
||||||
|
-- init = function()
|
||||||
|
-- vim.g.lightline = {colorscheme = "base16lightline"}
|
||||||
|
-- end,
|
||||||
|
-- dependencies = {{"nolo18/base16lightline"}},
|
||||||
|
-- },
|
||||||
|
{
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' }
|
||||||
|
},
|
||||||
|
"beyondmarc/opengl.vim",
|
||||||
|
{
|
||||||
|
"arrufat/vala.vim",
|
||||||
|
init = function()
|
||||||
|
vim.g.vala_syntax_folding_enabled = 0
|
||||||
|
end
|
||||||
|
},
|
||||||
|
'tikhomirov/vim-glsl',
|
||||||
|
'jamessan/vim-gnupg',
|
||||||
|
'https://git.sr.ht/~sircmpwn/hare.vim',
|
||||||
|
'romainl/vim-cool',
|
||||||
|
{
|
||||||
|
'machakann/vim-highlightedyank',
|
||||||
|
init = function()
|
||||||
|
vim.g.highlightedyank_highlight_duration = 200
|
||||||
|
end
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'tcbbd/detectindent',
|
||||||
|
init = function()
|
||||||
|
vim.g.detectindent_preferred_indent=4
|
||||||
|
vim.g.detectindent_autodetect=1
|
||||||
|
end
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'lambdalisue/suda.vim',
|
||||||
|
-- Allow writing of unwritable file with sudo, until neovim#1716 is fixed
|
||||||
|
init = function()
|
||||||
|
vim.g.suda_smart_edit = 1
|
||||||
|
end
|
||||||
|
},
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
'hrsh7th/cmp-buffer',
|
||||||
|
'hrsh7th/cmp-path',
|
||||||
|
'hrsh7th/cmp-cmdline',
|
||||||
|
'hrsh7th/nvim-cmp',
|
||||||
|
|
||||||
|
'L3MON4D3/LuaSnip',
|
||||||
|
'saadparwaiz1/cmp_luasnip',
|
||||||
|
{
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
branch = "0.1.x",
|
||||||
|
dependencies = {{"nvim-lua/plenary.nvim"}}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function ()
|
||||||
|
local configs = require("nvim-treesitter.configs")
|
||||||
|
|
||||||
|
configs.setup({
|
||||||
|
ensure_installed = { "c", "lua", "vim", "vimdoc", "javascript", "html" },
|
||||||
|
sync_install = false,
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
})
|
||||||
|
end
|
||||||
|
}
|
||||||
|
})
|
|
@ -16,11 +16,14 @@ xkb_symbols "fr_afnor" {
|
||||||
include "fr(afnor)"
|
include "fr(afnor)"
|
||||||
|
|
||||||
key <AE07> {[ leftsinglequotemark, 7, grave, dead_macron ]}; // ‘ 7 `
|
key <AE07> {[ leftsinglequotemark, 7, grave, dead_macron ]}; // ‘ 7 `
|
||||||
key <AE12> {[ circumflex, dead_diaeresis, dead_circumflex, dead_caron ]}; // ^
|
key <AE12> {[ asciicircum, dead_diaeresis, dead_circumflex, dead_caron ]}; // ^
|
||||||
key <AB06> {[ n, N, tilde, dead_tilde ]}; // n N ~
|
key <AB06> {[ n, N, asciitilde, dead_tilde ]}; // n N ~
|
||||||
|
|
||||||
key <AD04> {[ r, R, registered, copyright ]}; // r R ® ©
|
key <AD04> {[ r, R, registered, copyright ]}; // r R ® ©
|
||||||
|
|
||||||
key <AB01> {[ w, W, less, lessthanequal ]}; // w W < ≤
|
key <AB01> {[ w, W, less, lessthanequal ]}; // w W < ≤
|
||||||
key <AB02> {[ x, X, greater, greaterthanequal ]}; // x X > ≥
|
key <AB02> {[ x, X, greater, greaterthanequal ]}; // x X > ≥
|
||||||
}
|
|
||||||
|
// Space bar borrowed from bépo
|
||||||
|
key <SPCE> {[ space, nobreakspace, underscore, U202F ]}; // ␣ (espace insécable) _ (espace insécable fin)
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in a new issue