diff options
author | Akshay <[email protected]> | 2022-01-15 09:26:27 +0000 |
---|---|---|
committer | Akshay <[email protected]> | 2022-01-15 09:26:27 +0000 |
commit | 4ff231c3a55d2b49cd72d824d45480b6b7961190 (patch) | |
tree | 05ca13dea4535ec683b01cc47fc70ef5e19d9e63 | |
parent | 458ec6367670a847cc7a48f8ab32299b22509417 (diff) |
switch to nvim-cmp
l---------[-rw-r--r--] | init.vim | 203 | ||||
-rw-r--r-- | lua/completions.lua | 37 |
2 files changed, 38 insertions, 202 deletions
@@ -1,202 +1 @@ | |||
1 | let &t_ZM = "\e[3m" | /nix/store/rfv8sgqc8mhpyyzb6j71k6gmgps03cc9-home-manager-files/.config/nvim/init.vim \ No newline at end of file | |
2 | |||
3 | call plug#begin('~/.local/share/nvim/plugged') | ||
4 | |||
5 | Plug 'airblade/vim-gitgutter' | ||
6 | Plug 'godlygeek/tabular' | ||
7 | Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | ||
8 | Plug 'junegunn/fzf.vim' | ||
9 | Plug 'vimwiki/vimwiki' | ||
10 | |||
11 | " tpope | ||
12 | Plug 'tpope/vim-repeat' | ||
13 | Plug 'tpope/vim-surround' | ||
14 | Plug 'tpope/vim-unimpaired' | ||
15 | Plug 'tpope/vim-fugitive' | ||
16 | |||
17 | " syntax and friends | ||
18 | " Plug 'rust-lang/rust.vim', {'for': 'rust'} | ||
19 | Plug 'lervag/vimtex', {'for': 'tex'} | ||
20 | Plug 'neovimhaskell/haskell-vim', {'for': ['haskell', 'cabal']} | ||
21 | Plug 'elmcast/elm-vim' | ||
22 | Plug 'LnL7/vim-nix' | ||
23 | |||
24 | " my stuff | ||
25 | Plug 'git@ferrn:vim/vim-colors-plain' | ||
26 | Plug 'git@ferrn:vim/better-text-objs' | ||
27 | |||
28 | " nvim only | ||
29 | Plug 'neovim/nvim-lspconfig' | ||
30 | Plug 'nvim-lua/completion-nvim' | ||
31 | Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} | ||
32 | |||
33 | call plug#end() | ||
34 | |||
35 | |||
36 | " augroups | ||
37 | |||
38 | augroup plaintext | ||
39 | autocmd! | ||
40 | autocmd FileType text,markdown setlocal ts=2 sts=2 sw=2 expandtab textwidth=60 | ||
41 | augroup END | ||
42 | |||
43 | augroup webdev | ||
44 | autocmd! | ||
45 | autocmd FileType less,css,html,js?,ts? setlocal ts=2 sts=2 sw=2 expandtab | ||
46 | autocmd FileType less,css,html nnoremap <Leader>s viB:sort<cr> | ||
47 | augroup END | ||
48 | |||
49 | augroup lisp_stuff | ||
50 | autocmd! | ||
51 | autocmd BufReadPost *.lisp set filetype=scheme | ||
52 | augroup END | ||
53 | |||
54 | augroup restorecursor | ||
55 | autocmd BufReadPost * | ||
56 | \ if line("'\"") > 1 && line("'\"") <= line("$") | | ||
57 | \ execute "normal! g`\"" | | ||
58 | \ endif | ||
59 | augroup END | ||
60 | |||
61 | augroup fzfstatus | ||
62 | if has('nvim') && !exists('g:fzf_layout') | ||
63 | autocmd! FileType fzf | ||
64 | autocmd FileType fzf set laststatus=0 noshowmode noruler | ||
65 | \| autocmd BufLeave <buffer> set laststatus=2 showmode ruler | ||
66 | endif | ||
67 | augroup END | ||
68 | |||
69 | augroup completions | ||
70 | " Use completion-nvim in every buffer | ||
71 | autocmd! | ||
72 | autocmd BufEnter * lua require'completion'.on_attach() | ||
73 | augroup END | ||
74 | |||
75 | " general settings | ||
76 | set nobackup | ||
77 | set nowritebackup | ||
78 | set noswapfile " get rid of swapfiles everywhere | ||
79 | set dir=/tmp | ||
80 | |||
81 | syntax on | ||
82 | |||
83 | set omnifunc=syntaxcomplete#Complete | ||
84 | set completefunc=LanguageClient#complete | ||
85 | set list | ||
86 | filetype off | ||
87 | filetype plugin indent on | ||
88 | set laststatus=2 | ||
89 | set nowrap | ||
90 | set noshowmode | ||
91 | set listchars=tab:┊\ ,nbsp:␣,trail:·,extends:>,precedes:< | ||
92 | set fillchars=vert:\│,stl:\ ,stlnc:\ | ||
93 | set ignorecase | ||
94 | set smartcase | ||
95 | set sidescroll=40 | ||
96 | set incsearch | ||
97 | set hlsearch | ||
98 | set undofile | ||
99 | set undodir=~/tmp | ||
100 | set path+=** | ||
101 | set backspace=indent,eol,start | ||
102 | set hidden | ||
103 | set wildmenu | ||
104 | set complete=.,w,b,i,u,t, | ||
105 | set background=dark | ||
106 | set mouse=a | ||
107 | set conceallevel=0 | ||
108 | set nonumber | ||
109 | set grepprg=rg\ --vimgrep\ --no-heading | ||
110 | set grepformat=%f:%l:%c:%m,%f:%l:%m | ||
111 | set cmdheight=2 | ||
112 | set shortmess+=c | ||
113 | set updatetime=300 | ||
114 | set signcolumn=yes | ||
115 | set inccommand=split | ||
116 | set showmatch | ||
117 | set diffopt+=vertical | ||
118 | set completeopt=menuone,noinsert,noselect | ||
119 | |||
120 | let g:netrw_browsex_viewer= "xdg-open" | ||
121 | |||
122 | colorscheme plain | ||
123 | |||
124 | set shiftwidth=4 " indent = 4 spaces | ||
125 | set expandtab | ||
126 | set tabstop=4 " tab = 4 spaces | ||
127 | set softtabstop=4 " backspace through spaces | ||
128 | |||
129 | " Functions | ||
130 | function! GetTabber() " a lil function that integrates well with Tabular.vim | ||
131 | let c = nr2char(getchar()) | ||
132 | :execute 'Tabularize /' . c | ||
133 | endfunction | ||
134 | |||
135 | " Ugh | ||
136 | command! WQ wq | ||
137 | command! Wq wq | ||
138 | command! Wqa wqa | ||
139 | command! WQa wqa | ||
140 | command! W w | ||
141 | command! Q q | ||
142 | |||
143 | " abbreviations | ||
144 | abclear | ||
145 | iab #i #include | ||
146 | iab #d #define | ||
147 | cab dst put =strftime('%d %a, %b %Y')<cr> | ||
148 | cab vg vimgrep | ||
149 | cab vga vimgrepadd | ||
150 | cab bfd bufdo | ||
151 | |||
152 | " man pages | ||
153 | let g:ft_man_open_mode = 'tab' | ||
154 | |||
155 | let g:gitgutter_override_sign_column_highlight = 0 | ||
156 | let g:gitgutter_sign_added = '+' | ||
157 | let g:gitgutter_sign_modified = '~' | ||
158 | let g:gitgutter_sign_removed = '-' | ||
159 | let g:gitgutter_sign_removed_first_line = '-' | ||
160 | let g:gitgutter_sign_modified_removed = '~' | ||
161 | |||
162 | let g:fzf_colors = | ||
163 | \ { 'fg': ['fg', 'Noise'], | ||
164 | \ 'bg': ['bg', 'Noise'], | ||
165 | \ 'hl': ['fg', 'Statement'], | ||
166 | \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], | ||
167 | \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], | ||
168 | \ 'hl+': ['fg', 'Statement'], | ||
169 | \ 'info': ['fg', 'PreProc'], | ||
170 | \ 'border': ['fg', 'Ignore'], | ||
171 | \ 'prompt': ['fg', 'Conditional'], | ||
172 | \ 'pointer': ['fg', 'Exception'], | ||
173 | \ 'marker': ['fg', 'Keyword'], | ||
174 | \ 'spinner': ['fg', 'Label'], | ||
175 | \ 'header': ['fg', 'Comment'] } | ||
176 | let g:fzf_layout = { 'down': '40%' } | ||
177 | let g:fzf_preview_window = [] | ||
178 | |||
179 | highlight GitGutterAdd ctermfg=8 | ||
180 | highlight GitGutterChange ctermfg=8 | ||
181 | highlight GitGutterDelete ctermfg=8 | ||
182 | |||
183 | let g:rustfmt_autosave = 1 | ||
184 | |||
185 | let g:latex_view_general_viewer = "zathura" | ||
186 | let g:vimtex_view_method = "zathura" | ||
187 | let g:tex_flavor = 'latex' | ||
188 | |||
189 | let g:elm_setup_keybindings = 0 | ||
190 | |||
191 | let g:completion_matching_strategy_list = ['exact', 'substring', 'fuzzy', 'all'] | ||
192 | let g:completion_trigger_on_delete = 1 | ||
193 | |||
194 | sign define LspDiagnosticsSignError text=× texthl=LspDiagnosticsSignError linehl= numhl= | ||
195 | sign define LspDiagnosticsSignWarning text=\! texthl=LspDiagnosticsSignWarning linehl= numhl= | ||
196 | sign define LspDiagnosticsSignInformation text=i texthl=LspDiagnosticsSignInformation linehl= numhl= | ||
197 | sign define LspDiagnosticsSignHint text=\~ texthl=LspDiagnosticsSignHint linehl= numhl= | ||
198 | |||
199 | lua << EOF | ||
200 | require 'lsp' | ||
201 | require 'treesitter' | ||
202 | EOF | ||
diff --git a/lua/completions.lua b/lua/completions.lua new file mode 100644 index 0000000..f7598a6 --- /dev/null +++ b/lua/completions.lua | |||
@@ -0,0 +1,37 @@ | |||
1 | local cmp = require 'cmp' | ||
2 | |||
3 | cmp.setup({ | ||
4 | snippet = { | ||
5 | expand = function(args) end, | ||
6 | }, | ||
7 | mapping = { | ||
8 | ['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), | ||
9 | ['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), | ||
10 | ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), | ||
11 | ['<C-y>'] = cmp.config.disable, | ||
12 | ['<C-e>'] = cmp.mapping({ | ||
13 | i = cmp.mapping.abort(), | ||
14 | c = cmp.mapping.close(), | ||
15 | }), | ||
16 | ['<CR>'] = cmp.mapping.confirm({ select = true }), | ||
17 | }, | ||
18 | sources = cmp.config.sources({ | ||
19 | { name = 'nvim_lsp' }, | ||
20 | }, { | ||
21 | { name = 'buffer' }, | ||
22 | }) | ||
23 | }) | ||
24 | |||
25 | cmp.setup.cmdline('/', { | ||
26 | sources = { | ||
27 | { name = 'buffer' } | ||
28 | } | ||
29 | }) | ||
30 | |||
31 | cmp.setup.cmdline(':', { | ||
32 | sources = cmp.config.sources({ | ||
33 | { name = 'path' } | ||
34 | }, { | ||
35 | { name = 'cmdline' } | ||
36 | }) | ||
37 | }) | ||