Skip to content

Commit 2bedd0a

Browse files
committed
Massive Neovim update, working on supporting Linux installation
1 parent eca1977 commit 2bedd0a

19 files changed

+896
-475
lines changed

ctags

+25-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,30 @@
11
--exclude=.git
2-
--exclude=log
3-
--exclude=tmp
4-
--exclude=target
52

3+
# CSS Config
4+
--langdef=css
5+
--langmap=css:.css
6+
--regex-css=/^[ \t]*\.([A-Za-z0-9_-]+)/.\1/c,class,classes/
7+
--regex-css=/^[ \t]*#([A-Za-z0-9_-]+)/#\1/i,id,ids/
8+
--regex-css=/^[ \t]*(([A-Za-z0-9_-]+[ \t\n,]+)+)\{/\1/t,tag,tags/
9+
--regex-css=/^[ \t]*@media\s+([A-Za-z0-9_-]+)/\1/m,media,medias/
10+
11+
# Sass Config
12+
--langdef=scss
13+
--langmap=scss:.scss
14+
--regex-scss=/^[ \t]*@mixin ([A-Za-z0-9_-]+)/\1/m,mixin,mixins/
15+
--regex-scss=/^[ \t]*\$([A-Za-z0-9_-]+)/\1/v,variable,variables/
16+
--regex-scss=/^([A-Za-z0-9_-]*)*(\.[A-Za-z0-9_-]+) *[,{]/\2/c,class,classes/
17+
--regex-scss=/^[ \t]+(\.[A-Za-z0-9_-]+) *[,{]/\1/c,class,classes/
18+
--regex-scss=/^(.*)*\#([A-Za-z0-9_-]+) *[,{]/\2/i,id,ids/
19+
--regex-scss=/^[ \t]*#([A-Za-z0-9_-]+)/\1/i,id,ids/
20+
--regex-scss=/(^([A-Za-z0-9_-])*([A-Za-z0-9_-]+)) *[,|\{]/\1/t,tag,tags/
21+
--regex-scss=/(^([^\/\/])*)[ \t]+([A-Za-z0-9_-]+)) *[,|\{]/\3/t,tag,tags/
22+
--regex-scss=/(^(.*, *)([A-Za-z0-9_-]+)) *[,|\{]/\3/t,tag,tags/
23+
--regex-scss=/(^[ \t]+([A-Za-z0-9_-]+)) *[,|\{]/\1/t,tag,tags/
24+
--regex-scss=/^[ \t]*@media\s+([A-Za-z0-9_-]+)/\1/d,media,media/
25+
26+
# Elixir Config
27+
# https://github.com/mmorearty/elixir-ctags
628
--langdef=Elixir
729
--langmap=Elixir:.ex.exs
830
--regex-Elixir=/^[ \t]*def(p?)[ \t]+([a-z_][a-zA-Z0-9_?!]*)/\2/f,functions,functions (def ...)/
@@ -17,4 +39,3 @@
1739
--regex-Elixir=/^[ \t]*Record\.defrecord[ \t]+:([a-zA-Z0-9_]+)/\1/r,records,records (defrecord...)/
1840
--regex-Elixir=/^[ \t]*test[ \t]+\"([a-z_][a-zA-Z0-9_?! ]*)\"*/\1/t,tests,tests (test ...)/
1941

20-
--fields=+l

install.sh

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/sh
2+
3+
# Import helper scripts --------------------------------------------------------
4+
# ------------------------------------------------------------------------------
5+
source 'scripts/helpers/colors.sh'
6+
source 'scripts/helpers/functions.sh'
7+
8+
# MacOS or Linux specific configuration ----------------------------------------
9+
# ------------------------------------------------------------------------------
10+
if system_is_OSX; then
11+
source 'scripts/osx.sh'
12+
elif system_is_linux; then
13+
source 'scripts/linux.sh'
14+
fi
15+
16+
exit 0

nvim/init.vim

+8-246
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ nnoremap <localleader>pu :PlugUpdate<cr>
4444
nnoremap <localleader>pc :PlugClean<cr>
4545
nnoremap <localleader>pi :PlugInstall<cr>
4646
47+
" ******************************************************************
48+
" Plugins with many lines of configuration are under 'plugin' folder
49+
" ******************************************************************
50+
4751
" elzr/vim-json
4852
" ==================================
4953
let g:vim_json_syntax_conceal = 0
@@ -52,29 +56,6 @@ let g:vim_json_syntax_conceal = 0
5256
" ==================================
5357
let g:alchemist_tag_disable = 1 "Use Universal ctags instead
5458

55-
" fatih/vim-go
56-
" ==================================
57-
let g:go_def_mapping_enabled = 0
58-
let g:go_loaded_gosnippets = 1
59-
let g:go_snippet_engine = 'neosnippet'
60-
augroup vim-go
61-
autocmd!
62-
autocmd FileType go
63-
\ nmap <leader>gd <Plug>(go-describe)
64-
\ | nmap <Leader>gc <Plug>(go-callees)
65-
\ | nmap <Leader>gC <Plug>(go-callers)
66-
\ | nmap <Leader>gi <Plug>(go-info)
67-
\ | nmap <Leader>gm <Plug>(go-implements)
68-
\ | nmap <Leader>gs <Plug>(go-callstack)
69-
\ | nmap <Leader>ge <Plug>(go-referrers)
70-
\ | nmap <Leader>gr <Plug>(go-run)
71-
\ | nmap <Leader>gb <Plug>(go-build)
72-
\ | nmap <Leader>gv <Plug>(go-vet)
73-
\ | nmap <Leader>gt <Plug>(go-test)
74-
\ | nmap <Leader>gl <Plug>(go-lint)
75-
\ | nmap <Leader>ga <Plug>(go-alternate-edit)
76-
augroup END
77-
7859
" ditmammoth/doorboy.vim
7960
" ==================================
8061
" Easy jump closings without leaving home row or insert mode
@@ -89,20 +70,6 @@ autocmd FileType html,css,scss,vue,jsx,javascript,javascript.jsx
8970
\ EmmetInstall
9071
\ | imap <buffer> <C-Return> <Plug>(emmet-expand-abbr)
9172
92-
" sbdchd/neoformat
93-
" ==================================
94-
noremap <leader>f :Neoformat<cr>
95-
let g:neoformat_basic_format_align = 1
96-
let g:neoformat_basic_format_retab = 1
97-
let g:neoformat_basic_format_trim = 1
98-
let g:neoformat_enabled_html = ['html-beautify']
99-
let g:neoformat_enabled_javascript = ['prettier']
100-
let g:neoformat_enabled_json = ['js-beautify']
101-
let g:neoformat_enabled_go = ['gofmt', 'goimports']
102-
let g:neoformat_enabled_css = ['css-beautify']
103-
let g:neoformat_enabled_ruby = ['ruby-beautify']
104-
let g:neoformat_enabled_scss = ['sass-convert']
105-
10673
" junegunn/vim-easy-align
10774
" ==================================
10875
xmap ga <Plug>(EasyAlign)
@@ -139,70 +106,6 @@ let g:NERDTreeQuitOnOpen = 1
139106
" ==================================
140107
nnoremap <C-s> :<C-u>SK --color=selected:238,current_match:214<cr>
141108
142-
" Shougo/denite.nvim
143-
" ==================================
144-
nnoremap <localleader>b :Denite buffer<cr>
145-
nnoremap <localleader>f :Denite file_rec<cr>
146-
nnoremap <localleader>g :Denite grep<cr>
147-
nnoremap <localleader>l :Denite line<cr>
148-
nnoremap <localleader>o :Denite outline<cr>
149-
nnoremap <localleader>m :Denite file_mru<cr>
150-
nnoremap <localleader>c :Denite command<cr>
151-
nnoremap <localleader>r :Denite register<cr>
152-
nnoremap <localleader>d :Denite directory_rec -default-action=cd<cr>
153-
nnoremap <localleader>* :DeniteCursorWord line<cr>
154-
nnoremap <localleader>w :DeniteCursorWord grep<cr>
155-
nnoremap <localleader>ch :Denite command_history<cr>
156-
call denite#custom#option('_', 'prompt', '')
157-
call denite#custom#option('default', 'vertical_preview', 1)
158-
call denite#custom#option('default', 'short_source_names', 1)
159-
" Custom mappings insert mode
160-
call denite#custom#map('insert', '<C-n>', '<denite:move_to_next_line>', 'noremap')
161-
call denite#custom#map('insert', '<c-p>', '<denite:move_to_previous_line>', 'noremap')
162-
call denite#custom#map('insert', '<down>', '<denite:move_to_next_line>', 'noremap')
163-
call denite#custom#map('insert', '<up>', '<denite:move_to_previous_line>', 'noremap')
164-
call denite#custom#map('insert', 'jk', '<denite:enter_mode:normal>', 'noremap')
165-
call denite#custom#map('insert', 'kj', '<denite:enter_mode:normal>', 'noremap')
166-
call denite#custom#map('insert', '<esc>', '<denite:enter_mode:normal>', 'noremap')
167-
" Custom mappings normal mode
168-
call denite#custom#map('normal', '<esc>', '<denite:quit>', 'noremap')
169-
call denite#custom#map('normal', 'st', '<denite:do_action:tabopen>', 'noremap')
170-
call denite#custom#map('normal', 'ss', '<denite:do_action:split>', 'noremap')
171-
call denite#custom#map('normal', 'sv', '<denite:do_action:vsplit>', 'noremap')
172-
call denite#custom#map('normal', 'r', '<denite:redraw>', 'noremap')
173-
" Use RipGrep or The Silver Searcher
174-
if executable('rg')
175-
" File
176-
call denite#custom#var('file_rec', 'command', ['rg', '--threads', '2', '--files', '--glob', '!.git'])
177-
" Grep
178-
call denite#custom#var('grep', 'command', ['rg'])
179-
call denite#custom#var('grep', 'recursive_opts', [])
180-
call denite#custom#var('grep', 'pattern_opt', ['--regexp'])
181-
call denite#custom#var('grep', 'separator', ['--'])
182-
call denite#custom#var('grep', 'final_opts', [])
183-
call denite#custom#var('grep', 'default_opts', ['--vimgrep', '--no-heading'])
184-
elseif executable('ag')
185-
" File
186-
call denite#custom#var('file_rec', 'command', ['ag', '--follow', '--color', '--nogroup', '-g', ''])
187-
" Grep
188-
call denite#custom#var('grep', 'command', ['ag'])
189-
call denite#custom#var('grep', 'recursive_opts', [])
190-
call denite#custom#var('grep', 'pattern_opt', [])
191-
call denite#custom#var('grep', 'separator', ['--'])
192-
call denite#custom#var('grep', 'final_opts', [])
193-
call denite#custom#var('grep', 'default_opts', ['--vimgrep', '--smart-case'])
194-
endif
195-
196-
" janko-m/vim-test
197-
" ==================================
198-
let g:test#strategy = "neovim"
199-
nmap <silent> <leader>t :TestSuite<CR>
200-
nmap <silent> <leader>ta :TestSuite<CR>
201-
nmap <silent> <leader>tn :TestNearest<CR>
202-
nmap <silent> <leader>tf :TestFile<CR>
203-
nmap <silent> <leader>tl :TestLast<CR>
204-
nmap <silent> <leader>tv :TestVisit<CR>
205-
206109
" AndrewRadev/switch.vim
207110
" ==================================
208111
let g:switch_mapping = ""
@@ -217,65 +120,6 @@ noremap <silent> <C-k> :TmuxNavigateUp<cr>
217120
noremap <silent> <C-l> :TmuxNavigateRight<cr>
218121
noremap <silent> <C-p> :TmuxNavigatePrevious<cr>
219122
220-
" ludovicchabant/vim-gutentags
221-
" ==================================
222-
if executable('ctags')
223-
set statusline+=%{gutentags#statusline('[Generating\ ctags...]')}
224-
let g:gutentags_cache_dir = '~/.ctags_cache'
225-
let g:gutentags_generate_on_missing = 1
226-
let g:gutentags_generate_on_new = 1
227-
let g:gutentags_ctags_exclude = [
228-
\".git","node_modules",
229-
\"log","vendor",
230-
\"build","dist",
231-
\"tmp","temp",
232-
\".min.js","assets"
233-
\]
234-
nnoremap <localleader>t :GutentagsUpdate!<cr>
235-
endif
236-
237-
" majutsushi/tagbar
238-
" ==================================
239-
nnoremap <F6> :TagbarToggle<CR>
240-
let g:tagbar_ctags_bin='/usr/local/bin/ctags'
241-
let g:tagbar_type_elixir = {
242-
\ 'ctagstype' : 'elixir',
243-
\ 'kinds' : [
244-
\ 'f:functions',
245-
\ 'functions:functions',
246-
\ 'c:callbacks',
247-
\ 'd:delegates',
248-
\ 'e:exceptions',
249-
\ 'i:implementations',
250-
\ 'a:macros',
251-
\ 'o:operators',
252-
\ 'm:modules',
253-
\ 'p:protocols',
254-
\ 'r:records',
255-
\ 't:tests'
256-
\ ]
257-
\ }
258-
259-
" justinmk/sneak
260-
" ==================================
261-
let g:sneak#s_next = 1
262-
let g:sneak#prompt = 'Sneak ❯ '
263-
autocmd ColorScheme * hi Sneak guifg=#1b2b34 guibg=#fac863
264-
" replace 'f' with 1-char Sneak
265-
nmap f <Plug>Sneak_f
266-
nmap F <Plug>Sneak_F
267-
xmap f <Plug>Sneak_f
268-
xmap F <Plug>Sneak_F
269-
omap f <Plug>Sneak_f
270-
omap F <Plug>Sneak_F
271-
" replace 't' with 1-char Sneak
272-
nmap t <Plug>Sneak_t
273-
nmap T <Plug>Sneak_T
274-
xmap t <Plug>Sneak_t
275-
xmap T <Plug>Sneak_T
276-
omap t <Plug>Sneak_t
277-
omap T <Plug>Sneak_T
278-
279123
" hauleth/sad.vim
280124
" ==================================
281125
nmap <leader>c <Plug>(sad-change-forward)
@@ -295,70 +139,13 @@ vmap § <Plug>MoveBlockUp
295139
" rizzatti/dash.vim
296140
" ==================================
297141
nmap <silent> <C-d> <Plug>DashSearch
298-
"
299142
" airblade/vim-rooter
143+
300144
" ==================================
301145
nnoremap <localleader>cd :Rooter<cr>
302146
let g:rooter_patterns = ['Makefile', 'mix.exs', 'package.json', '*.yml', '*.yaml', '.git', '.git/', 'node_modules/', '.hg/']
303147
let g:rooter_change_directory_for_non_project_files = 'current'
304148

305-
" Shougo/deoplete-go
306-
" ==================================
307-
let g:deoplete#enable_at_startup = 1
308-
let g:deoplete#skip_chars = ['(', ')', '<', '>']
309-
let g:deoplete#tag#cache_limit_size = 800000
310-
" Omni patterns
311-
let g:deoplete#omni_patterns = {}
312-
let g:deoplete#omni_patterns.html = '<[^>]*'
313-
" Omni input patterns
314-
let g:deoplete#omni#input_patterns = {}
315-
let g:deoplete#omni#input_patterns.html = '<[^>]*'
316-
let g:deoplete#omni#input_patterns.md = '<[^>]*'
317-
let g:deoplete#omni#input_patterns.css = '^\s\+\w\+\|\w\+[):;]\?\s\+\w*\|[@!]'
318-
let g:deoplete#omni#input_patterns.scss = '^\s\+\w\+\|\w\+[):;]\?\s\+\w*\|[@!]'
319-
let g:deoplete#omni#input_patterns.sass = '^\s\+\w\+\|\w\+[):;]\?\s\+\w*\|[@!]'
320-
let g:deoplete#omni#input_patterns.stylus = '^\s\+\w\+\|\w\+[):;]\?\s\+\w*\|[@!]'
321-
let g:deoplete#omni#input_patterns.javascript = ''
322-
let g:deoplete#omni#input_patterns.ruby = ['[^. *\t]\.\w*', '[a-zA-Z_]\w*::']
323-
" Omni functions
324-
let g:deoplete#omni#functions = {}
325-
let g:deoplete#omni#functions.css = 'csscomplete#CompleteCSS'
326-
let g:deoplete#omni#functions.html = 'htmlcomplete#CompleteTags'
327-
let g:deoplete#omni#functions.javascript = [ 'tern#Complete', 'jspc#omni', 'javascriptcomplete#CompleteJS' ]
328-
let g:deoplete#omni#functions.ruby = 'rubycomplete#Complete'
329-
" Custom Marks
330-
call deoplete#custom#set('buffer', 'mark', '')
331-
call deoplete#custom#set('tag', 'mark', '')
332-
call deoplete#custom#set('omni', 'mark', '')
333-
call deoplete#custom#set('ternjs', 'mark', '')
334-
call deoplete#custom#set('vim', 'mark', '')
335-
call deoplete#custom#set('neosnippet', 'mark', '')
336-
call deoplete#custom#set('around', 'mark', '~')
337-
call deoplete#custom#set('syntax', 'mark', '')
338-
call deoplete#custom#set('tmux-complete', 'mark', '')
339-
" Default rank is 100, higher is better
340-
call deoplete#custom#set('vim', 'rank', 630)
341-
call deoplete#custom#set('ternjs', 'rank', 620)
342-
call deoplete#custom#set('omni', 'rank', 600)
343-
call deoplete#custom#set('neosnippet', 'rank', 510)
344-
call deoplete#custom#set('member', 'rank', 500)
345-
call deoplete#custom#set('file_include', 'rank', 420)
346-
call deoplete#custom#set('file', 'rank', 410)
347-
call deoplete#custom#set('tag', 'rank', 400)
348-
call deoplete#custom#set('around', 'rank', 330)
349-
call deoplete#custom#set('buffer', 'rank', 320)
350-
call deoplete#custom#set('dictionary', 'rank', 310)
351-
call deoplete#custom#set('tmux-complete', 'rank', 300)
352-
call deoplete#custom#set('syntax', 'rank', 200)
353-
" Custom sorters, working well with neosnippet
354-
call deoplete#custom#set('_', 'converters', [
355-
\ 'converter_auto_paren',
356-
\ 'converter_remove_overlap',
357-
\ 'converter_truncate_abbr',
358-
\ 'converter_truncate_menu',
359-
\ 'converter_auto_delimiter',
360-
\ ])
361-
362149
" carlitux/deoplete-ternjs
363150
" ==================================
364151
let g:tern_request_timeout = 1
@@ -378,33 +165,6 @@ xmap <C-k> <Plug>(neosnippet_expand_target)
378165
" ==================================
379166
let g:echodoc#enable_at_startup = 1
380167

381-
" w0rp/ale
382-
" ==================================
383-
let g:ale_lint_on_text_changed = 0
384-
let g:ale_lint_on_save = 1
385-
let g:ale_sign_column_always = 1
386-
let g:ale_sign_error = ''
387-
let g:ale_sign_warning = ''
388-
let g:ale_statusline_format = ['⨉ %d', '⚠ %d', '⬥ ok']
389-
let g:ale_echo_msg_error_str = 'E'
390-
let g:ale_echo_msg_warning_str = 'W'
391-
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
392-
let g:ale_warn_about_trailing_whitespace = 1
393-
let g:ale_linters = {
394-
\ 'javascript': ['standard', 'eslint'],
395-
\}
396-
397-
augroup ale_lint
398-
autocmd!
399-
autocmd InsertLeave * call ale#Queue(0)
400-
autocmd ColorScheme * hi ALEErrorSign guibg=#ec5f67
401-
autocmd ColorScheme * hi ALEWarningSign guifg=#fac863
402-
augroup END
403-
" If 'standard.js' linter is present autoformat with:
404-
if executable('standard')
405-
autocmd BufWritePost *.js silent !standard --fix %
406-
endif
407-
408168
" vim-airline/vim-airline
409169
" ==================================
410170
let g:airline#extensions#tabline#enabled = 1
@@ -440,8 +200,10 @@ call ConfigInc('keybindings.vim')
440200
" THEMES / COLORS / UI
441201
"----------------------------------------------------------------------------------------------
442202

443-
colorscheme nova
444203
" If colorscheme = OceanicNext
204+
" colorscheme OceanicNext
445205
" highlight CursorLineNr guifg=#fac863
206+
446207
" If colorscheme = nova
208+
colorscheme nova
447209
highlight CursorLineNr guifg=#f2c38f

0 commit comments

Comments
 (0)