Compare commits
1 Commits
005a3f1c1f
...
minimal
| Author | SHA1 | Date | |
|---|---|---|---|
| 27715932d6 |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -1,10 +0,0 @@
|
||||
/.VimballRecord
|
||||
/.mypy_cache/
|
||||
/.netrwbook
|
||||
/.netrwhist
|
||||
/.ycm_extra_conf.pyc
|
||||
/doc/tags
|
||||
/haskellmode.config
|
||||
/hotkeys
|
||||
/log.vim
|
||||
/plugged/
|
||||
@@ -1,154 +0,0 @@
|
||||
# This file is NOT licensed under the GPLv3, which is the license for the rest
|
||||
# of YouCompleteMe.
|
||||
#
|
||||
# Here's the license text for this file:
|
||||
#
|
||||
# This is free and unencumbered software released into the public domain.
|
||||
#
|
||||
# Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
# distribute this software, either in source code form or as a compiled
|
||||
# binary, for any purpose, commercial or non-commercial, and by any
|
||||
# means.
|
||||
#
|
||||
# In jurisdictions that recognize copyright laws, the author or authors
|
||||
# of this software dedicate any and all copyright interest in the
|
||||
# software to the public domain. We make this dedication for the benefit
|
||||
# of the public at large and to the detriment of our heirs and
|
||||
# successors. We intend this dedication to be an overt act of
|
||||
# relinquishment in perpetuity of all present and future rights to this
|
||||
# software under copyright law.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
import os
|
||||
import ycm_core
|
||||
|
||||
# These are the compilation flags that will be used in case there's no
|
||||
# compilation database set (by default, one is not set).
|
||||
# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.
|
||||
flags = [
|
||||
'-Wall',
|
||||
'-Wextra',
|
||||
'-Werror',
|
||||
'-Wc++98-compat',
|
||||
'-Wno-long-long',
|
||||
'-Wno-variadic-macros',
|
||||
'-fexceptions',
|
||||
'-DNDEBUG',
|
||||
'-DUSE_CLANG_COMPLETER',
|
||||
# THIS IS IMPORTANT! Without a "-std=<something>" flag, clang won't know which
|
||||
# language to use when compiling headers. So it will guess. Badly. So C++
|
||||
# headers will be compiled as C headers. You don't want that so ALWAYS specify
|
||||
# a "-std=<something>".
|
||||
# For a C project, you would set this to something like 'c99' instead of
|
||||
# 'c++11'.
|
||||
'-std=c99',
|
||||
# ...and the same thing goes for the magic -x option which specifies the
|
||||
# language that the files to be compiled are written in. This is mostly
|
||||
# relevant for c++ headers.
|
||||
# For a C project, you would set this to 'c' instead of 'c++'.
|
||||
'-x',
|
||||
'c',
|
||||
'-isystem',
|
||||
'../BoostParts',
|
||||
'-isystem',
|
||||
# This path will only work on OS X, but extra paths that don't exist are not
|
||||
# harmful
|
||||
'/System/Library/Frameworks/Python.framework/Headers',
|
||||
'-isystem',
|
||||
'../llvm/include',
|
||||
'-isystem',
|
||||
'../llvm/tools/clang/include',
|
||||
'-I',
|
||||
'.',
|
||||
'-I',
|
||||
'./ClangCompleter',
|
||||
'-isystem',
|
||||
'./tests/gmock/gtest',
|
||||
'-isystem',
|
||||
'./tests/gmock/gtest/include',
|
||||
'-isystem',
|
||||
'./tests/gmock',
|
||||
'-isystem',
|
||||
'./tests/gmock/include'
|
||||
]
|
||||
|
||||
# Set this to the absolute path to the folder (NOT the file!) containing the
|
||||
# compile_commands.json file to use that instead of 'flags'. See here for
|
||||
# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
|
||||
#
|
||||
# Most projects will NOT need to set this to anything; you can just change the
|
||||
# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
|
||||
compilation_database_folder = ''
|
||||
|
||||
if compilation_database_folder:
|
||||
database = ycm_core.CompilationDatabase( compilation_database_folder )
|
||||
else:
|
||||
database = None
|
||||
|
||||
|
||||
def DirectoryOfThisScript():
|
||||
return os.path.dirname( os.path.abspath( __file__ ) )
|
||||
|
||||
|
||||
def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
|
||||
if not working_directory:
|
||||
return list( flags )
|
||||
new_flags = []
|
||||
make_next_absolute = False
|
||||
path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
|
||||
for flag in flags:
|
||||
new_flag = flag
|
||||
|
||||
if make_next_absolute:
|
||||
make_next_absolute = False
|
||||
if not flag.startswith( '/' ):
|
||||
new_flag = os.path.join( working_directory, flag )
|
||||
|
||||
for path_flag in path_flags:
|
||||
if flag == path_flag:
|
||||
make_next_absolute = True
|
||||
break
|
||||
|
||||
if flag.startswith( path_flag ):
|
||||
path = flag[ len( path_flag ): ]
|
||||
new_flag = path_flag + os.path.join( working_directory, path )
|
||||
break
|
||||
|
||||
if new_flag:
|
||||
new_flags.append( new_flag )
|
||||
return new_flags
|
||||
|
||||
|
||||
def FlagsForFile( filename ):
|
||||
if database:
|
||||
# Bear in mind that compilation_info.compiler_flags_ does NOT return a
|
||||
# python list, but a "list-like" StringVec object
|
||||
compilation_info = database.GetCompilationInfoForFile( filename )
|
||||
final_flags = MakeRelativePathsInFlagsAbsolute(
|
||||
compilation_info.compiler_flags_,
|
||||
compilation_info.compiler_working_dir_ )
|
||||
|
||||
# NOTE: This is just for YouCompleteMe; it's highly likely that your project
|
||||
# does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
|
||||
# ycm_extra_conf IF YOU'RE NOT 100% YOU NEED IT.
|
||||
try:
|
||||
final_flags.remove( '-stdlib=libc++' )
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
relative_to = DirectoryOfThisScript()
|
||||
final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
|
||||
|
||||
return {
|
||||
'flags': final_flags,
|
||||
'do_cache': True
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
let g:ale_linters = {'c':['clang', 'clangtidy', 'cppcheck']}
|
||||
" let g:ale_linters = {'c':['clang']}
|
||||
"let g:ale_fixers = {
|
||||
" \ 'c': ['clang-format'],
|
||||
" \}
|
||||
let g:ale_c_clangformat_options = '-style=file'
|
||||
|
||||
let g:ycm_goto_buffer_command = 'same-buffer'
|
||||
|
||||
nnoremap <F3> :call LanguageClient_contextMenu()<CR>
|
||||
nnoremap <silent> <F4> :call LanguageClient#textDocument_definition()<CR>
|
||||
nnoremap <silent> <F7> :call LanguageClient#textDocument_hover()<CR>
|
||||
nnoremap <silent> <F6> :call LanguageClient#textDocument_rename()<CR>
|
||||
|
||||
let g:LanguageClient_autoStart = 1
|
||||
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'c': ['cquery', '--language-server', '--log-file=/tmp/cq.log'],
|
||||
\ }
|
||||
|
||||
let g:LanguageClient_rootMarkers = {
|
||||
\ 'c': ['.cquery', 'compile_commands.json', 'build'],
|
||||
\ }
|
||||
|
||||
let g:LanguageClient_settingsPath = $HOME.'/.vim/cquery.json'
|
||||
@@ -1 +0,0 @@
|
||||
setlocal expandtab
|
||||
@@ -1,10 +0,0 @@
|
||||
call CmdAlias('Piggie','Piggieback (figwheel-sidecar.repl-api/repl-env)')
|
||||
|
||||
let g:rainbow_active = 1
|
||||
|
||||
|
||||
let g:ScreenImpl = 'Tmux'
|
||||
let g:sexp_enable_insert_mode_mappings = 0
|
||||
|
||||
" cljfmt
|
||||
let g:clj_fmt_autosave = 0
|
||||
@@ -1,67 +0,0 @@
|
||||
let g:tagbar_type_go = {
|
||||
\ 'ctagstype' : 'go',
|
||||
\ 'kinds' : [
|
||||
\ 'p:package',
|
||||
\ 'i:imports:1',
|
||||
\ 'c:constants',
|
||||
\ 'v:variables',
|
||||
\ 't:types',
|
||||
\ 'n:interfaces',
|
||||
\ 'w:fields',
|
||||
\ 'e:embedded',
|
||||
\ 'm:methods',
|
||||
\ 'r:constructor',
|
||||
\ 'f:functions'
|
||||
\ ],
|
||||
\ 'sro' : '.',
|
||||
\ 'kind2scope' : {
|
||||
\ 't' : 'ctype',
|
||||
\ 'n' : 'ntype'
|
||||
\ },
|
||||
\ 'scope2kind' : {
|
||||
\ 'ctype' : 't',
|
||||
\ 'ntype' : 'n'
|
||||
\ },
|
||||
\ 'ctagsbin' : 'gotags',
|
||||
\ 'ctagsargs' : '-sort -silent'
|
||||
\ }
|
||||
|
||||
|
||||
let g:go_auto_type_info = 0
|
||||
|
||||
|
||||
" mappings
|
||||
noremap <C-B> :TagbarToggle<CR>
|
||||
inoremap <C-B> <C-O>:TagbarToggle<CR>
|
||||
nmap <F3> :GoInfo<CR>
|
||||
|
||||
|
||||
function! MakePublic()
|
||||
let l:wordUnderCursor = expand('<cword>')
|
||||
let l:upperCaseWord = substitute(l:wordUnderCursor, '[A-Za-z]', '\\U&', '')
|
||||
execute 'GoRename ' l:upperCaseWord
|
||||
endfunction
|
||||
|
||||
|
||||
nmap <F6> :GoDocBrowser<CR><CR>
|
||||
nmap <F7> :GoDoc<CR>
|
||||
nmap <F8> :call MakePublic()<CR><CR>
|
||||
|
||||
|
||||
" ALE
|
||||
" let g:ale_linters = {'go':['gofmt', "go build"], 'c':['clang']}
|
||||
let g:ale_linters = {'go':['go build', 'gometalinter', 'gofmt'], 'c':['clang']}
|
||||
let g:ale_fixers = {
|
||||
\ 'go': ['gofmt', 'goimports'],
|
||||
\ 'c': ['clang-format'],
|
||||
\ 'cpp': ['clang-format'],
|
||||
\ 'js': ['eslint'],
|
||||
\ 'python': ['yapf'],
|
||||
\}
|
||||
let g:ale_go_gobuild_options = "-gcflags='-e'"
|
||||
let g:ale_go_gometalinter_options = '--fast'
|
||||
|
||||
" vim-go
|
||||
let g:go_highlight_functions = 1
|
||||
let g:go_highlight_space_tab_error = 1
|
||||
let g:go_highlight_chan_whitespace_error = 1
|
||||
@@ -1,51 +0,0 @@
|
||||
setlocal ts=2 sw=2 expandtab
|
||||
|
||||
" tags
|
||||
call CmdAlias('hasktags', '!hasktags -c .<CR>')
|
||||
|
||||
" from
|
||||
" https://raw.githubusercontent.com/begriffs/haskell-vim-now/master/git-hscope
|
||||
call CmdAlias('codex', 'call system("haskell-ctags")<CR><CR>call LoadHscope()<CR>')
|
||||
call CmdAlias('Cc', 'Clap commits<CR>')
|
||||
|
||||
|
||||
map <leader>ctg :codex<CR>
|
||||
set tags=tags;/,codex.tags;/
|
||||
|
||||
" nnoremap <silent> <leader>cgd :cs find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nnoremap <silent> <C-\> :cs find c <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
" set cscopeprg=do_at_stack_root\ hscope
|
||||
set csre
|
||||
set csto=1 " search codex tags first
|
||||
set nocst
|
||||
" set cscopequickfix=s-,c-,d-,i-,t-,e-,a-
|
||||
|
||||
function! LoadHscope()
|
||||
set nocscopeverbose " suppress 'duplicate connection' error
|
||||
let hsf = findfile("hscope.out", ".;")
|
||||
if filereadable(hsf)
|
||||
exe "cs add " . hsf
|
||||
elseif $HSCOPE_DB != ""
|
||||
cs add $HSCOPE_DB
|
||||
endif
|
||||
set cscopeverbose
|
||||
endfunction
|
||||
" au BufEnter /*.hs call LoadHscope()
|
||||
|
||||
|
||||
call deoplete#enable()
|
||||
call deoplete#custom#source('LanguageClient',
|
||||
\ 'min_pattern_length',
|
||||
\ 2)
|
||||
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
|
||||
|
||||
|
||||
" vim-lsp
|
||||
if executable('haskell-language-server-wrapper')
|
||||
au User lsp_setup call lsp#register_server({
|
||||
\ 'name': 'hls',
|
||||
\ 'cmd': {server_info->['haskell-language-server-wrapper', '--lsp']},
|
||||
\ 'allowlist': ['haskell'],
|
||||
\ })
|
||||
endif
|
||||
@@ -1,16 +0,0 @@
|
||||
" let g:ale_linters = {'python':['mypy']}
|
||||
|
||||
" let g:ale_python_mypy_options = '--no-warn-incomplete-stub --ignore-missing-imports'
|
||||
|
||||
" let g:ale_python_pycodestyle_options = '--ignore=W391'
|
||||
|
||||
let g:neoformat_enabled_python = ['autopep8']
|
||||
|
||||
augroup fmt
|
||||
autocmd!
|
||||
autocmd BufWritePre * undojoin | Neoformat
|
||||
augroup END
|
||||
|
||||
let g:jedi#completions_enabled = 0
|
||||
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
let g:rust_doc#define_map_K = 0
|
||||
let g:rust_doc#downloaded_rust_doc_dir = '~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu'
|
||||
|
||||
function! s:search_under_cursor(query) range
|
||||
if a:query ==# ''
|
||||
echomsg "rust-doc: No identifier is found under the cursor"
|
||||
return
|
||||
endif
|
||||
|
||||
call rust_doc#open_fuzzy(a:query)
|
||||
endfunction
|
||||
|
||||
" keys
|
||||
nnoremap <buffer><silent><F7> :<C-u>call <SID>search_under_cursor(expand('<cword>'))<CR>
|
||||
vnoremap <buffer><silent><F7> "gy:call <SID>search_under_cursor(getreg('g'))<CR>
|
||||
|
||||
" rusty-tags
|
||||
autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/
|
||||
autocmd BufWritePost *.rs :silent! exec "!rusty-tags vi --quiet --start-dir=" . expand('%:p:h') . "&" | redraw!
|
||||
|
||||
let g:tagbar_ctags_bin = '/usr/bin/exuberant-ctags'
|
||||
|
||||
|
||||
" nnoremap <F3> :call LanguageClient_contextMenu()<CR>
|
||||
" nnoremap <silent> <F4> :call LanguageClient#textDocument_definition()<CR>
|
||||
" nnoremap <silent> <F6> :call LanguageClient#textDocument_hover()<CR>
|
||||
" nnoremap <silent> <F8> :call LanguageClient#textDocument_rename()<CR>
|
||||
|
||||
|
||||
" let g:LanguageClient_autoStart = 1
|
||||
|
||||
" let g:LanguageClient_serverCommands = {
|
||||
" \ 'rust': ['rustup', 'run', 'nightly', 'rls'] }
|
||||
|
||||
" let g:LanguageClient_diagnosticsEnable = 0
|
||||
|
||||
" let g:ale_linters = {'rust': ['rls']}
|
||||
" let g:ale_fixers = { 'rust': ['rustfmt'] }
|
||||
|
||||
" let g:ale_fix_on_save = 0
|
||||
" let g:autofmt_autosave = 0
|
||||
|
||||
" deoplete
|
||||
" call deoplete#custom#option('sources',{
|
||||
" \ '_': ['buffer'],
|
||||
" \ 'rust': ['ultisnips', 'buffer', 'file', 'LanguageClient']
|
||||
" \ })
|
||||
" inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
|
||||
" call deoplete#enable()
|
||||
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'rust': ['~/.cargo/bin/ra_lsp_server'],
|
||||
\ }
|
||||
@@ -1,8 +0,0 @@
|
||||
if (expand("%:e") == "exheres-0")
|
||||
finish
|
||||
endif
|
||||
|
||||
if (expand("%:e") == "exlib")
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
nnoremap <leader>gd <C-]>
|
||||
|
||||
|
||||
let g:tsuquyomi_disable_quickfix = 1
|
||||
|
||||
let g:ale_linters = {
|
||||
\ 'typescript': ['tsserver'],
|
||||
\}
|
||||
|
||||
call deoplete#custom#option('sources', {
|
||||
\ 'typescript': ['ale', 'buffer', 'file', 'around'],
|
||||
\})
|
||||
|
||||
|
||||
call deoplete#custom#source('ale', 'rank', 999)
|
||||
call deoplete#custom#source('ale', 'input_pattern', '[^. *\t]\.\w*')
|
||||
|
||||
autocmd FileType typescript setlocal balloonexpr=tsuquyomi#balloonexpr()
|
||||
@@ -1,2 +0,0 @@
|
||||
let g:ale_linters = {'vim':['vint']}
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
" Author: Julian Ospald <hasufell@hasufell.de>
|
||||
" Description: argon for Haskell files
|
||||
|
||||
call ale#Set('haskell_argon_executable', 'argon')
|
||||
call ale#Set('haskell_argon_options', '')
|
||||
call ale#Set('haskell_argon_error_level', 12)
|
||||
call ale#Set('haskell_argon_warn_level', 8)
|
||||
call ale#Set('haskell_argon_info_level', 4)
|
||||
|
||||
|
||||
function! ale_linters#haskell#argon#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'haskell_argon_executable')
|
||||
endfunction
|
||||
|
||||
|
||||
function! ale_linters#haskell#argon#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#haskell#argon#GetExecutable(a:buffer))
|
||||
\ . ' '
|
||||
\ . ale#Var(a:buffer, 'haskell_argon_options')
|
||||
\ . ' -m ' . ale#Var(a:buffer, 'haskell_argon_info_level')
|
||||
\ . ' -j'
|
||||
\ . ' %t'
|
||||
endfunction
|
||||
|
||||
|
||||
function! ale_linters#haskell#argon#Handle(buffer, lines) abort
|
||||
let l:output = []
|
||||
|
||||
for l:error in ale#util#FuzzyJSONDecode(a:lines, [])
|
||||
if !has_key(l:error, 'blocks')
|
||||
" this cannot be formatted properly into an ALE error
|
||||
execute 'echom ''[argon] '' l:error.message'
|
||||
return l:output
|
||||
endif
|
||||
for l:block in l:error.blocks
|
||||
let l:complexity = l:block.complexity
|
||||
|
||||
if l:complexity >= ale#Var(a:buffer, 'haskell_argon_error_level')
|
||||
let l:type = 'E'
|
||||
let l:max_c = ale#Var(a:buffer, 'haskell_argon_error_level')
|
||||
elseif l:complexity >= ale#Var(a:buffer, 'haskell_argon_warn_level')
|
||||
let l:type = 'W'
|
||||
let l:max_c = ale#Var(a:buffer, 'haskell_argon_warn_level')
|
||||
else
|
||||
let l:type = 'I'
|
||||
let l:max_c = ale#Var(a:buffer, 'haskell_argon_info_level')
|
||||
endif
|
||||
|
||||
call add(l:output, {
|
||||
\ 'filename': l:error.path,
|
||||
\ 'lnum': l:block.lineno,
|
||||
\ 'col': l:block.col,
|
||||
\ 'text': l:block.name . ': cyclomatic complexity of ' . l:complexity,
|
||||
\ 'type': l:type,
|
||||
\})
|
||||
endfor
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
|
||||
call ale#linter#Define('haskell', {
|
||||
\ 'name': 'argon',
|
||||
\ 'executable_callback': 'ale_linters#haskell#argon#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#haskell#argon#GetCommand',
|
||||
\ 'callback': 'ale_linters#haskell#argon#Handle',
|
||||
\})
|
||||
|
||||
2504
autoload/plug.vim
Normal file
2504
autoload/plug.vim
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"initializationOptions": {
|
||||
"cacheDirectory": "/tmp/cquery"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
snippet docsec
|
||||
------------------------
|
||||
--[ ${0:DOCUMENT SECTION} ]--
|
||||
------------------------
|
||||
@@ -1,2 +0,0 @@
|
||||
snippet tc
|
||||
\textcolor{${1:red}}{${0}}
|
||||
@@ -1,14 +0,0 @@
|
||||
let g:ale_open_list = 0
|
||||
let g:ale_set_quickfix = 0
|
||||
let g:ale_set_loclist = 1
|
||||
let g:ale_fix_on_save = 1
|
||||
let g:ale_lint_delay = 100
|
||||
highlight clear ALEWarningSign
|
||||
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
|
||||
nmap <silent> <C-j> <Plug>(ale_next_wrap)
|
||||
let g:ale_sign_column_always = 1
|
||||
let g:ale_quiet_messages = { 'sub_type': 'style' }
|
||||
"Lint only on save
|
||||
let g:ale_lint_on_text_changed = 'never'
|
||||
let g:ale_lint_on_enter = 1
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
au BufNewFile,BufRead *.log setf log
|
||||
|
||||
397
plugin/keys.vim
397
plugin/keys.vim
@@ -1,397 +0,0 @@
|
||||
nnoremap <SPACE> <Nop>
|
||||
let g:mapleader = ' '
|
||||
|
||||
inoremap <C-u> <Esc>
|
||||
|
||||
"
|
||||
nnoremap <Leader>tk <C-w><C-]><C-w>T
|
||||
|
||||
" Quickly insert an empty new line without entering insert mode
|
||||
nnoremap <Leader>o o<Esc>
|
||||
nnoremap <Leader>O O<Esc>
|
||||
|
||||
" nnoremap <kPageUp> <PageUp>
|
||||
" nnoremap <kPageDown> <PageDown>
|
||||
" inoremap <kPageUp> <PageUp>
|
||||
" inoremap <kPageDown> <PageDown>
|
||||
|
||||
" workman
|
||||
noremap <C-K> <C-O>
|
||||
noremap <Tab> <C-I>
|
||||
|
||||
noremap e j
|
||||
noremap o k
|
||||
noremap n h
|
||||
noremap i l
|
||||
noremap k n
|
||||
noremap h e
|
||||
noremap l o
|
||||
noremap f u
|
||||
noremap u i
|
||||
|
||||
noremap E J
|
||||
noremap O K
|
||||
noremap N H
|
||||
noremap I L
|
||||
noremap K N
|
||||
noremap H E
|
||||
noremap L O
|
||||
noremap F U
|
||||
noremap U I
|
||||
|
||||
noremap ge gj
|
||||
noremap go gk
|
||||
noremap gn gh
|
||||
noremap gl go
|
||||
noremap gk gn
|
||||
noremap gh ge
|
||||
|
||||
noremap gE gJ
|
||||
noremap gN gH
|
||||
noremap gK gN
|
||||
noremap gH gE
|
||||
noremap gL gO
|
||||
|
||||
nnoremap <silent> <c-w>e :wincmd j<cr>
|
||||
nnoremap <silent> <c-w>o :wincmd k<cr>
|
||||
nnoremap <silent> <c-w>n :wincmd h<cr>
|
||||
nnoremap <silent> <c-w>i :wincmd l<cr>
|
||||
nnoremap <silent> <c-w>k :wincmd n<cr>
|
||||
nnoremap <silent> <c-w>l :wincmd o<cr>
|
||||
|
||||
vnoremap <c-n> B
|
||||
vnoremap <c-i> W
|
||||
nnoremap <c-n> B
|
||||
nnoremap <c-i> W
|
||||
|
||||
vnoremap <A-n> b
|
||||
vnoremap <A-i> w
|
||||
nnoremap <A-n> b
|
||||
nnoremap <A-i> w
|
||||
" nnoremap <c-n>i e
|
||||
|
||||
" get control-j back, so switch it with ctrl-n at qwerty position of j
|
||||
" imap <c-n> <cr>
|
||||
" cmap <c-n> <cr>
|
||||
inoremap <c-j> <c-n>
|
||||
cnoremap <c-j> <c-n>
|
||||
|
||||
" jump word in visual mode -- TODO
|
||||
|
||||
" In insert or command mode, move normally by using Ctrl
|
||||
inoremap <C-n> <Left>
|
||||
inoremap <C-e> <Down>
|
||||
inoremap <C-o> <Up>
|
||||
inoremap <C-i> <Right>
|
||||
cnoremap <C-n> <Left>
|
||||
cnoremap <C-e> <Down>
|
||||
cnoremap <C-o> <Up>
|
||||
cnoremap <C-i> <Right>
|
||||
|
||||
inoremap <C-A-n> <C-Left>
|
||||
inoremap <C-A-i> <C-Right>
|
||||
|
||||
inoremap <C-A-e> <Esc>:+3<CR>i
|
||||
inoremap <C-A-o> <Esc>:-3<CR>i
|
||||
|
||||
" easy config
|
||||
nmap <S-F9> :e $HOME/.vimrc<CR>
|
||||
nmap <S-F10> :so $HOME/.vimrc<CR>
|
||||
|
||||
" Force saving files that require root permission
|
||||
command! SUDOwrite :execute 'w !sudo tee > /dev/null %' | edit!
|
||||
|
||||
" TODO: C-S-o etc does not work
|
||||
" Bubble single lines
|
||||
nmap <silent> <C-S-Up> :m-2<CR>==
|
||||
nmap <silent> <C-S-o> :m-2<CR>==
|
||||
nmap <silent> <C-S-Down> :m+<CR>==
|
||||
nmap <silent> <C-S-e> :m+<CR>==
|
||||
imap <silent> <C-S-Up> <Esc>:m-2<CR>==gi
|
||||
imap <silent> <C-S-o> <Esc>:m-2<CR>==gi
|
||||
imap <silent> <C-S-Down> <Esc>:m+<CR>==gi
|
||||
imap <silent> <C-S-e> <Esc>:m+<CR>==gi
|
||||
|
||||
" Bubble multiple lines
|
||||
vmap <silent> <C-S-Up> :m-2<CR>gv=gv
|
||||
vmap <silent> <C-S-o> :m-2<CR>gv=gv
|
||||
vmap <silent> <C-S-Down> :m'>+<CR>gv=gv
|
||||
vmap <silent> <C-S-e> :m'>+<CR>gv=gv
|
||||
|
||||
" Indent lines using <Left> and <Right>
|
||||
vmap <C-S-Right> >gv
|
||||
nmap <C-S-Right> >>
|
||||
imap <C-S-Right> <Esc>>>i
|
||||
vmap <C-S-Left> <gv
|
||||
nmap <C-S-Left> <<
|
||||
imap <C-S-Left> <Esc><<i
|
||||
|
||||
" moving through location list items
|
||||
" noremap <S-Up> :lprevious<CR>
|
||||
" noremap <S-Down> :lnext<CR>
|
||||
|
||||
" moving through buffers
|
||||
" noremap <S-Left> :bn<CR>
|
||||
" noremap <S-Right> :bp<CR>
|
||||
noremap <leader>bd <Esc>:bd<CR>
|
||||
noremap <leader>wc <Esc>:bd<CR>
|
||||
noremap <leader>bo <Esc>:Bufonly<CR>
|
||||
|
||||
" close preview
|
||||
nmap <leader>pc <Esc>:pc<CR>
|
||||
|
||||
" Remap window commands
|
||||
" map <leader>ws <Esc>:wincmd s<CR>
|
||||
" map <leader>wv <Esc>:wincmd v<CR>
|
||||
" map <leader>wc <Esc>:wincmd c<CR>
|
||||
" map <leader>wn <Esc>:wincmd n<CR>
|
||||
" map <leader>wo <Esc>:wincmd o<CR>
|
||||
" map <leader>w+ <Esc>:wincmd _<CR>
|
||||
" map <leader>w- <Esc>:wincmd <Bar><CR>
|
||||
" map <leader>w= <Esc>:wincmd =<CR>
|
||||
" nmap + :vertical resize +20<CR>
|
||||
" nmap - :vertical resize -20<CR>
|
||||
" map <C-S--> <Esc>:wincmd ><CR>
|
||||
" map <C-Down> <Esc>:wincmd j<CR>
|
||||
" map <C-j> <Esc>:wincmd j<CR>
|
||||
" map <C-Up> <Esc>:wincmd k<CR>
|
||||
" map <C-k> <Esc>:wincmd k<CR>
|
||||
" map <C-Left> <Esc>:wincmd h<CR>
|
||||
" map <C-h> <Esc>:wincmd h<CR>
|
||||
" map <C-Right> <Esc>:wincmd l<CR>
|
||||
" map <C-l> <Esc>:wincmd l<CR>
|
||||
"
|
||||
" nnoremap <silent> <A-o> :wincmd k<CR>
|
||||
" nnoremap <silent> <A-e> :wincmd j<CR>
|
||||
" nnoremap <silent> <A-n> :wincmd h<CR>
|
||||
" nnoremap <silent> <A-i> :wincmd l<CR>
|
||||
" inoremap <silent> <A-o> <Esc>:wincmd k<CR>
|
||||
" inoremap <silent> <A-e> <Esc>:wincmd j<CR>
|
||||
" inoremap <silent> <A-n> <Esc>:wincmd h<CR>
|
||||
" inoremap <silent> <A-i> <Esc>:wincmd l<CR>
|
||||
nnoremap <silent> <C-A-o> :wincmd k<CR>
|
||||
nnoremap <silent> <C-A-e> :wincmd j<CR>
|
||||
nnoremap <silent> <C-A-n> :wincmd h<CR>
|
||||
nnoremap <silent> <C-A-i> :wincmd l<CR>
|
||||
nnoremap <silent> <A-Up> :wincmd k<CR>
|
||||
nnoremap <silent> <A-Down> :wincmd j<CR>
|
||||
nnoremap <silent> <A-Left> :wincmd h<CR>
|
||||
nnoremap <silent> <A-Right> :wincmd l<CR>
|
||||
inoremap <silent> <A-Up> <Esc>:wincmd k<CR>
|
||||
inoremap <silent> <A-Down> <Esc>:wincmd j<CR>
|
||||
inoremap <silent> <A-Left> <Esc>:wincmd h<CR>
|
||||
inoremap <silent> <A-Right> <Esc>:wincmd l<CR>
|
||||
nnoremap <silent> <C-A-Up> :wincmd K<CR>
|
||||
nnoremap <silent> <C-A-Down> :wincmd J<CR>
|
||||
nnoremap <silent> <C-A-Left> :wincmd H<CR>
|
||||
nnoremap <silent> <C-A-Right> :wincmd L<CR>
|
||||
inoremap <silent> <C-A-Up> <Esc>:wincmd K<CR>
|
||||
inoremap <silent> <C-A-Down> <Esc>:wincmd J<CR>
|
||||
inoremap <silent> <C-A-Left> <Esc>:wincmd H<CR>
|
||||
inoremap <silent> <C-A-Right> <Esc>:wincmd L<CR>
|
||||
|
||||
" tags
|
||||
nmap <S-F3> :exec("tjump ".expand("<cword>"))<CR>
|
||||
nmap <S-F4> :split<CR>:exec("tjump ".expand("<cword>"))<CR>
|
||||
|
||||
" trigger NERDTree, Tagbar $ Co.
|
||||
" nmap <leader>n <Esc>:NERDTreeToggle<CR>
|
||||
" nmap <leader>t <Esc>:TagbarToggle<CR>
|
||||
" nmap <leader>f "zyaw :exe ":Ack ".@z.""<CR>
|
||||
|
||||
" grep word under cursor
|
||||
nnoremap <silent><leader>f :lgr! "\b<C-R><C-W>\b"<CR>:cw<CR>
|
||||
|
||||
" paste from system clipboard
|
||||
inoremap <silent> <S-Insert> <ESC>:set paste<CR>"+p :set nopaste<CR>
|
||||
|
||||
" toggle spellcheck
|
||||
nmap <silent> <S-F7> :setlocal spell! spelllang=en_us<CR>
|
||||
|
||||
" cursor jump
|
||||
" nnoremap <A-Up> 3k
|
||||
" inoremap <A-Up> <Esc>:-3<CR>i
|
||||
" vnoremap <A-Up> 3k
|
||||
" nnoremap <A-Down> 3j
|
||||
" inoremap <A-Down> <Esc>:+3<CR>i
|
||||
" vnoremap <A-Down> 3j
|
||||
" nnoremap <C-Up> 6k
|
||||
" inoremap <C-Up> <Esc>:-6<CR>i
|
||||
" vnoremap <C-Up> 6k
|
||||
" nnoremap <C-Down> 6j
|
||||
" inoremap <C-Down> <Esc>:+6<CR>i
|
||||
" vnoremap <C-Down> 6j
|
||||
|
||||
nnoremap <A-o> 3k
|
||||
vnoremap <A-o> 3k
|
||||
nnoremap <A-e> 3j
|
||||
vnoremap <A-e> 3j
|
||||
nnoremap <C-o> 6k
|
||||
vnoremap <C-o> 6k
|
||||
nnoremap <C-e> 6j
|
||||
vnoremap <C-e> 6j
|
||||
|
||||
" scrolling
|
||||
nnoremap <S-PageUp> 10<C-Y>
|
||||
" inoremap <S-PageUp> <Esc>10<C-Y>i
|
||||
vnoremap <S-PageUp> 10<C-Y>
|
||||
nnoremap <S-PageDown> 10<C-E>
|
||||
" inoremap <S-PageDown> <Esc>10<C-E>i
|
||||
vnoremap <S-PageDown> 10<C-E>
|
||||
|
||||
nnoremap <A-p> 10<C-Y>
|
||||
" inoremap <A-p> <Esc>10<C-Y>i
|
||||
vnoremap <A-p> 10<C-Y>
|
||||
nnoremap <A-u> 10<C-E>
|
||||
" inoremap <A-u> <Esc>10<C-E>i
|
||||
vnoremap <A-u> 10<C-E>
|
||||
|
||||
nnoremap <C-p> <C-u>
|
||||
" inoremap <C-p> <Esc><C-u>i
|
||||
vnoremap <C-p> <C-u>
|
||||
nnoremap <C-u> <C-d>
|
||||
" inoremap <C-u> <Esc><C-d>i
|
||||
vnoremap <C-u> <C-d>
|
||||
|
||||
" half scroll up and down
|
||||
noremap <C-A-p> <C-b>
|
||||
noremap <C-A-u> <C-f>
|
||||
map <C-d> <Nop>
|
||||
|
||||
" F keys
|
||||
" nmap <F2> :noh<CR>
|
||||
" imap <F2> <C-O>:noh<CR>
|
||||
noremap <F5> :FufBuffer<CR>
|
||||
nmap <F7> :call ManCurrentWord()<CR><CR>
|
||||
" nmap <F8> :call DevHelpCurrentWord()<CR><CR>
|
||||
" nmap <F4> <C-]>
|
||||
|
||||
" remap visual block
|
||||
nnoremap <S-C> <c-v>
|
||||
|
||||
" write
|
||||
noremap <C-s> :w<CR>
|
||||
inoremap <C-s> <C-O>:w<CR>
|
||||
|
||||
" exit
|
||||
noremap <C-q> :qa!<CR>
|
||||
inoremap <C-q> <C-O>:qa!<CR>
|
||||
|
||||
" paste
|
||||
nnoremap <C-V> "+gPl
|
||||
vnoremap <C-V> :<C-U>call Paste("v")<CR>
|
||||
inoremap <C-V> <C-O>:call Paste("i")<CR>
|
||||
|
||||
" select all
|
||||
nnoremap <C-A> ggVG<CR>
|
||||
inoremap <C-A> <C-O>:call Select()<CR>
|
||||
|
||||
nnoremap <leader>cd :cd %:p:h<CR>:pwd<CR>
|
||||
|
||||
nnoremap <Leader>cc :cclose<CR>
|
||||
nnoremap <Leader>co :copen<CR>
|
||||
|
||||
function! ToggleQuickFix()
|
||||
if empty(filter(getwininfo(), 'v:val.quickfix'))
|
||||
copen
|
||||
else
|
||||
cclose
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! ToggleLocList()
|
||||
if empty(filter(getwininfo(), 'v:val.loclist'))
|
||||
lopen
|
||||
else
|
||||
lclose
|
||||
endif
|
||||
endfunction
|
||||
|
||||
nnoremap <silent> <F3> :call ToggleQuickFix()<CR>
|
||||
nnoremap <silent> <F4> :call ToggleLocList()<CR>
|
||||
|
||||
|
||||
|
||||
|
||||
" PLUGINS
|
||||
|
||||
|
||||
" NERDTree
|
||||
noremap <C-j> :NERDTreeToggle<CR>
|
||||
" noremap <C-B> :TagbarToggle<CR>
|
||||
inoremap <C-B> <C-O>:TagbarToggle<CR>
|
||||
|
||||
" vista
|
||||
nmap <F8> :Vista!!<CR>
|
||||
|
||||
" NERDComment
|
||||
nnoremap <silent> <F10> :call NERDComment("n", "Toggle")<cr>
|
||||
vnoremap <silent> <F10> <ESC>:call NERDComment("v", "Toggle")<cr>
|
||||
|
||||
" YCM
|
||||
nmap <C-F4> :YcmCompleter GoTo<CR>:wincmd o<CR>
|
||||
|
||||
" vim-clap
|
||||
nnoremap <leader>ag :Clap grep ++query=<cword><CR>
|
||||
" nnoremap <silent> <leader>tg :Clap proj_tags ++query=<cword><CR>
|
||||
nmap <C-f> :Clap files<CR>
|
||||
nmap <F2> :Clap tags<CR>
|
||||
nmap <C-b> :Clap buffers<CR>
|
||||
nnoremap <silent> <leader>tb :Clap tags ++query=<cword><CR>
|
||||
|
||||
nnoremap <silent> <leader>tg :tag <C-R>=expand("<cword>")<CR><CR>
|
||||
nnoremap <silent> <leader>tp :ptag <C-R>=expand("<cword>")<CR><CR>
|
||||
nnoremap <silent> <leader>ts :ts <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
" gitgutter
|
||||
nmap <leader>ggt <Esc>:GitGutterToggle<CR>
|
||||
nmap <leader>nh <Plug>(GitGutterNextHunk)
|
||||
nmap <leader>bh <Plug>(GitGutterPrevHunk)
|
||||
|
||||
" tig
|
||||
" let g:tig_explorer_keymap_edit = '<C-x>'
|
||||
" let g:tig_explorer_keymap_tabedit = '<C-t>'
|
||||
" let g:tig_explorer_keymap_split = '<C-s>'
|
||||
" let g:tig_explorer_keymap_vsplit = '<C-v>'
|
||||
" nnoremap <Leader>T :TigOpenCurrentFile<CR>
|
||||
" nnoremap <Leader>t :TigOpenProjectRootDir<CR>
|
||||
" nnoremap <Leader>g :TigGrep<CR>
|
||||
" nnoremap <Leader>r :TigGrepResume<CR>
|
||||
" vnoremap <Leader>g y:TigGrep<Space><C-R>"<CR>
|
||||
" nnoremap <Leader>cg :<C-u>:TigGrep<Space><C-R><C-W><CR>
|
||||
" nnoremap <Leader>b :TigBlame<CR>
|
||||
|
||||
" ghcup
|
||||
" nnoremap <Leader>ghc :GHCup<CR>
|
||||
|
||||
" git gutter
|
||||
omap <leader>ic <Plug>(GitGutterTextObjectInnerPending)
|
||||
omap <leader>ac <Plug>(GitGutterTextObjectOuterPending)
|
||||
xmap <leader>ic <Plug>(GitGutterTextObjectInnerVisual)
|
||||
xmap <leader>ac <Plug>(GitGutterTextObjectOuterVisual)
|
||||
|
||||
" fastfold
|
||||
nmap zuz <Plug>(FastFoldUpdate)
|
||||
|
||||
"LanguageClient-neovim
|
||||
" Required for operations modifying multiple buffers like rename.
|
||||
set hidden
|
||||
nnoremap <leader>lc :call LanguageClient_contextMenu()<CR>
|
||||
" Or map each action separately
|
||||
nnoremap <silent> T :call LanguageClient#textDocument_hover()<CR>
|
||||
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
|
||||
" nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
|
||||
" nnoremap <leader>ld :call LanguageClient#textDocument_definition()<CR>
|
||||
" nnoremap <leader>lr :call LanguageClient#textDocument_rename()<CR>
|
||||
" nnoremap <leader>lf :call LanguageClient#textDocument_formatting()<CR>
|
||||
" nnoremap <leader>lt :call LanguageClient#textDocument_typeDefinition()<CR>
|
||||
" nnoremap <leader>lx :call LanguageClient#textDocument_references()<CR>
|
||||
" nnoremap <leader>la :call LanguageClient_workspace_applyEdit()<CR>
|
||||
" nnoremap <leader>lc :call LanguageClient#textDocument_completion()<CR>
|
||||
" nnoremap <leader>lh :call LanguageClient#textDocument_hover()<CR>
|
||||
nnoremap <leader>la :call LanguageClient#textDocument_codeAction()<CR>
|
||||
nnoremap <leader>rn :call LanguageClient#textDocument_rename()<CR>
|
||||
|
||||
nnoremap ,g <Plug>(lcn-diagnostics-next)
|
||||
nnoremap .g <Plug>(lcn-diagnostics-prev)
|
||||
|
||||
492
plugins.toml
492
plugins.toml
@@ -1,492 +0,0 @@
|
||||
[[plugins]]
|
||||
repo = 'mileszs/ack.vim'
|
||||
[[plugins]]
|
||||
repo = 'vim-scripts/cmdalias.vim'
|
||||
[[plugins]]
|
||||
repo = 'Raimondi/delimitMate'
|
||||
hook_add = '''
|
||||
let g:delimitMate_matchpairs = "(:),[:],{:}"
|
||||
let g:delimitMate_expand_cr = 1
|
||||
let g:delimitMate_expand_space = 1
|
||||
let g:delimitMate_autoclose = 1
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'vim-scripts/genindent.vim'
|
||||
[[plugins]]
|
||||
repo = 'scrooloose/nerdcommenter'
|
||||
hook_add = '''
|
||||
let NERDSpaceDelims=1
|
||||
let NERDCreateDefaultMappings=0
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'scrooloose/nerdtree'
|
||||
on_event = 'NERDTreeToggle'
|
||||
hook_add = '''
|
||||
let g:NERDTreeMapActivateNode = '<CR>'
|
||||
let g:NERDTreeMapCustomOpen = ''
|
||||
let g:NERDTreeMapOpenExpl = 'n'
|
||||
let g:NERDTreeMapJumpNextSibling = ''
|
||||
" let g:NERDTreeMapOpenSplit = ''
|
||||
" use NERDTree instead of netrw
|
||||
autocmd StdinReadPre * let s:std_in=1
|
||||
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'Xuyuanp/nerdtree-git-plugin'
|
||||
on_event = 'NERDTreeToggle'
|
||||
[[plugins]]
|
||||
repo = 'xolox/vim-easytags'
|
||||
[[plugins]]
|
||||
repo = 'xolox/vim-misc'
|
||||
[[plugins]]
|
||||
repo = 'nathanaelkane/vim-indent-guides'
|
||||
[[plugins]]
|
||||
repo = 'Shougo/vimproc.vim'
|
||||
build = 'make'
|
||||
[[plugins]]
|
||||
repo = 'sjbach/lusty'
|
||||
[[plugins]]
|
||||
repo = 'nixprime/cpsm'
|
||||
build = 'sh -c "PY3=ON ./install.sh"'
|
||||
[[plugins]]
|
||||
repo = 'liuchengxu/vista.vim'
|
||||
hook_add = '''
|
||||
let g:vista#renderer#enable_icon = 0
|
||||
let g:vista_ctags_cmd = {
|
||||
\ 'haskell': 'hasktags -x -o - -c',
|
||||
\ 'yaml': 'hasktags -x -o - -c',
|
||||
\ }
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'sbdchd/neoformat'
|
||||
hook_add = '''
|
||||
let g:neoformat_enabled_haskell = ['brittany']
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'AndrewRadev/bufferize.vim'
|
||||
[[plugins]]
|
||||
repo = 'vmchale/dhall-vim'
|
||||
[[plugins]]
|
||||
repo = 'Shougo/echodoc.vim'
|
||||
hook_add = '''
|
||||
" set cmdheight=2
|
||||
let g:echodoc#enable_at_startup = 1
|
||||
let g:echodoc#type = 'signature'
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'tpope/vim-scriptease'
|
||||
[[plugins]]
|
||||
repo = 'Konfekt/FastFold'
|
||||
hook_add = '''
|
||||
let g:fastfold_savehook = 1
|
||||
let g:fastfold_fold_command_suffixes = ['x','X','a','A','o','O','c','C']
|
||||
let g:fastfold_fold_movement_commands = [']z', '[z', 'zj', 'zk']
|
||||
let g:markdown_folding = 1
|
||||
let g:tex_fold_enabled = 1
|
||||
let g:vimsyn_folding = 'af'
|
||||
let g:xml_syntax_folding = 1
|
||||
let g:html_syntax_folding = 1
|
||||
let g:javaScript_fold = 1
|
||||
let g:sh_fold_enabled= 7
|
||||
let g:ruby_fold = 1
|
||||
let g:perl_fold = 1
|
||||
let g:perl_fold_blocks = 1
|
||||
let g:r_syntax_folding = 1
|
||||
let g:rust_fold = 1
|
||||
let g:haskell_fold = 1
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'editorconfig/editorconfig-vim'
|
||||
hook_add = '''
|
||||
" overwrite nonsense from editorconfig
|
||||
let g:EditorConfig_max_line_indicator = 'none'
|
||||
" let g:EditorConfig_preserve_formatoptions = 1
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'hasufell/ghcup.vim'
|
||||
[[plugins]]
|
||||
repo = 'junegunn/vim-easy-align'
|
||||
[[plugins]]
|
||||
repo = 'dominikduda/vim_current_word'
|
||||
hook_add = '''
|
||||
let g:vim_current_word#highlight_current_word = 0
|
||||
hi default link CurrentWordTwins CursorColumn
|
||||
'''
|
||||
#[[plugins]]
|
||||
# repo = 'vim-airline/vim-airline'
|
||||
#[[plugins]]
|
||||
# repo = 'vim-airline/vim-airline-themes'
|
||||
[[plugins]]
|
||||
repo = 'mkitt/tabline.vim'
|
||||
[[plugins]]
|
||||
repo = 'kshenoy/vim-signature'
|
||||
|
||||
# finder
|
||||
[[plugins]]
|
||||
repo = 'liuchengxu/vim-clap'
|
||||
build = 'make'
|
||||
hook_add = '''
|
||||
command -nargs=* Rag Clap grep ++query=<args>
|
||||
let g:clap_layout = {'relative': 'editor', 'width': '95%', 'height': '33%', 'row': '33%', 'col': '5%'}
|
||||
let g:clap_use_pure_python = 1
|
||||
'''
|
||||
|
||||
# scm
|
||||
[[plugins]]
|
||||
repo = 'tpope/vim-fugitive'
|
||||
[[plugins]]
|
||||
repo = 'tpope/vim-rhubarb'
|
||||
[[plugins]]
|
||||
repo = 'tommcdo/vim-fubitive'
|
||||
[[plugins]]
|
||||
repo = 'airblade/vim-gitgutter'
|
||||
hook_add = '''
|
||||
" https://github.com/airblade/vim-gitgutter/issues/696
|
||||
autocmd ColorScheme * highlight! link SignColumn LineNr
|
||||
'''
|
||||
|
||||
# local vimrc
|
||||
[[plugins]]
|
||||
repo = 'LucHermitte/lh-vim-lib'
|
||||
[[plugins]]
|
||||
repo = 'LucHermitte/local_vimrc'
|
||||
|
||||
# completion
|
||||
#[[plugins]]
|
||||
#repo = 'Valloric/YouCompleteMe'
|
||||
#build = './install.py --clang-completer --go-completer --rust-completer --system-boost --system-libclang'
|
||||
#on_ft = ['c', 'go', 'clojure']
|
||||
#hook_add = '''
|
||||
# youcompleteme
|
||||
# let g:ycm_filetype_blacklist = {
|
||||
# \ 'notes' : 1,
|
||||
# \ 'markdown' : 1,
|
||||
# \ 'text' : 1,
|
||||
# \ 'java' : 1,
|
||||
# \}
|
||||
# let g:ycm_confirm_extra_conf = 0
|
||||
# let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
|
||||
# let g:ycm_collect_identifiers_from_tags_files = 1
|
||||
# let g:ycm_seed_identifiers_with_syntax = 0
|
||||
# " let g:ycm_always_populate_location_list = 1
|
||||
# let g:ycm_autoclose_preview_window_after_completion = 1
|
||||
# let g:ycm_key_invoke_completion = '<C-Space>'
|
||||
# let g:ycm_key_list_select_completion = ['<TAB>']
|
||||
# let g:ycm_key_list_previous_completion = ['<S-TAB>']
|
||||
# " nnoremap <F4> :YcmCompleter GoToDefinition<CR>
|
||||
# let g:ycm_server_log_level = 'error'
|
||||
# let g:ycm_semantic_triggers = {'haskell' : ['. ', '$ ']}
|
||||
# let g:ycm_goto_buffer_command = 'horizontal-split'
|
||||
#'''
|
||||
[[plugins]]
|
||||
repo = 'Shougo/deoplete.nvim'
|
||||
hook_add = '''
|
||||
let g:deoplete#enable_at_startup = 0
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'roxma/nvim-yarp'
|
||||
on_if = '!has("nvim")'
|
||||
[[plugins]]
|
||||
repo = 'roxma/vim-hug-neovim-rpc'
|
||||
on_if = '!has("nvim")'
|
||||
|
||||
# linting/compilation
|
||||
[[plugins]]
|
||||
repo = 'w0rp/ale'
|
||||
build = 'bash -c "cp -R ~/.vim/ale_linters ."'
|
||||
on_ft = ['sh', 'vim']
|
||||
hook_add = '''
|
||||
let g:ale_enabled = 0
|
||||
let g:ale_linters = {'haskell':[], 'c':['clang']}
|
||||
" let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools', 'argon'], 'c':['clang']}
|
||||
" let g:ale_fixers = {
|
||||
" \ 'haskell': ['brittany'],
|
||||
" \}
|
||||
let g:ale_haskell_hdevtools_options = "-g '-Wall' -g '-Wno-orphans'"
|
||||
let g:ale_haskell_argon_error_level = 14
|
||||
let g:ale_haskell_argon_warn_level = 10
|
||||
let g:ale_haskell_argon_info_level = 6
|
||||
'''
|
||||
|
||||
# LSP
|
||||
[[plugins]]
|
||||
repo = 'autozimu/LanguageClient-neovim'
|
||||
rev = 'dev'
|
||||
build = 'bash ./install.sh'
|
||||
hook_add = '''
|
||||
" Required for operations modifying multiple buffers like rename.
|
||||
set hidden
|
||||
|
||||
let g:LanguageClient_autoStart = 0
|
||||
let g:LanguageClient_diagnosticsEnable = 1
|
||||
let g:LanguageClient_diagnosticsList = "Quickfix"
|
||||
let g:LanguageClient_diagnosticsDisplay = {
|
||||
\ 1: {
|
||||
\ "name": "Error",
|
||||
\ "texthl": "ALEError",
|
||||
\ "signText": "✖",
|
||||
\ "signTexthl": "ALEErrorSign",
|
||||
\ "virtualTexthl": "Error",
|
||||
\ },
|
||||
\ 2: {
|
||||
\ "name": "Warning",
|
||||
\ "texthl": "ALEWarning",
|
||||
\ "signText": "⚠",
|
||||
\ "signTexthl": "ALEWarningSign",
|
||||
\ "virtualTexthl": "Virtual",
|
||||
\ },
|
||||
\ 3: {
|
||||
\ "name": "Information",
|
||||
\ "texthl": "ALEInfo",
|
||||
\ "signText": "ℹ",
|
||||
\ "signTexthl": "ALEInfoSign",
|
||||
\ "virtualTexthl": "Virtual",
|
||||
\ },
|
||||
\ 4: {
|
||||
\ "name": "Hint",
|
||||
\ "texthl": "ALEInfo",
|
||||
\ "signText": "➤",
|
||||
\ "signTexthl": "ALEInfoSign",
|
||||
\ "virtualTexthl": "Virtual",
|
||||
\ },
|
||||
\ }
|
||||
|
||||
" hi link ALEError Error
|
||||
hi ALEError term=underline cterm=underline ctermfg=Red gui=undercurl guisp=Red
|
||||
hi link ALEWarning Warning
|
||||
hi Virtual cterm=italic ctermfg=10 gui=italic guifg=#4b5558
|
||||
hi link ALEInfo SpellCap
|
||||
|
||||
let $LANGUAGECLIENT_DEBUG=1
|
||||
let g:LanguageClient_loggingLevel='DEBUG'
|
||||
let g:LanguageClient_virtualTextPrefix = ''
|
||||
let g:LanguageClient_loggingFile = expand('~/LanguageClient.log')
|
||||
let g:LanguageClient_serverStderr = expand('~/LanguageServer.log')
|
||||
|
||||
let g:LanguageClient_rootMarkers = {'haskell': ['cabal.project', '*.cabal', 'stack.yaml'] }
|
||||
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'haskell': ['haskell-language-server-wrapper', '--lsp', '--logfile', $HOME.'/hls-server.log'],
|
||||
\ }
|
||||
'''
|
||||
#[[plugins]]
|
||||
#repo = 'prabirshrestha/vim-lsp'
|
||||
#hook_add = '''
|
||||
# function! s:on_lsp_buffer_enabled() abort
|
||||
# setlocal omnifunc=lsp#complete
|
||||
# setlocal signcolumn=yes
|
||||
# if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif
|
||||
# nmap <buffer> gd <plug>(lsp-definition)
|
||||
# nmap <buffer> gr <plug>(lsp-references)
|
||||
# " nmap <buffer> gi <plug>(lsp-implementation)
|
||||
# " nmap <buffer> gt <plug>(lsp-type-definition)
|
||||
# nmap <buffer> <leader>rn <plug>(lsp-rename)
|
||||
# nmap <buffer> .g <Plug>(lsp-previous-diagnostic)
|
||||
# nmap <buffer> ,g <Plug>(lsp-next-diagnostic)
|
||||
# nmap <buffer> T <plug>(lsp-hover)
|
||||
# nmap <buffer> <leader>la <plug>(lsp-code-action)
|
||||
# nmap <buffer> <leader>sd <plug>(lsp-document-diagnostics)
|
||||
#
|
||||
# " refer to doc to add more commands
|
||||
# endfunction
|
||||
#
|
||||
# augroup lsp_install
|
||||
# au!
|
||||
# " call s:on_lsp_buffer_enabled only for languages that has the server registered.
|
||||
# autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()
|
||||
# augroup END
|
||||
#
|
||||
# let g:lsp_auto_enable = 0
|
||||
#
|
||||
# " command -nargs=0 LspStart call lsp#activate()
|
||||
#'''
|
||||
|
||||
# snippets
|
||||
#[[plugins]]
|
||||
#repo = 'Shougo/neosnippet.vim'
|
||||
#[[plugins]]
|
||||
#repo = 'honza/vim-snippets'
|
||||
|
||||
# multi language
|
||||
[[plugins]]
|
||||
repo = 'luochen1990/rainbow'
|
||||
on_ft = ['clojure', 'haskell', 'python']
|
||||
hook_add = '''
|
||||
let g:rainbow_conf = {
|
||||
\ 'guifgs': ['#DC322F', 'royalblue3', 'darkorange3', 'seagreen3'],
|
||||
\ 'ctermfgs': ['lightred', 'lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
|
||||
\}
|
||||
let g:rainbow_active = 1
|
||||
'''
|
||||
|
||||
# haskell
|
||||
[[plugins]]
|
||||
repo = 'neovimhaskell/haskell-vim'
|
||||
on_ft = ['haskell', 'cabal']
|
||||
hook_add = '''
|
||||
let g:haskell_classic_highlighting = 1
|
||||
let g:haskell_indent_disable = 0
|
||||
" let g:haskell_enable_quantification = 1
|
||||
" let g:haskell_enable_recursivedo = 1
|
||||
" let g:haskell_enable_arrowsyntax = 1
|
||||
" let g:haskell_enable_pattern_synonyms = 1
|
||||
" let g:haskell_enable_typeroles = 1
|
||||
let g:haskell_indent_if = 0
|
||||
let g:haskell_indent_case = 4
|
||||
let g:haskell_indent_let = 4
|
||||
let g:haskell_indent_where = 6
|
||||
let g:haskell_indent_before_where = 2
|
||||
let g:haskell_indent_after_bare_where = 2
|
||||
let g:haskell_indent_do = 4
|
||||
let g:haskell_indent_in = 0
|
||||
let g:haskell_indent_guard = 4
|
||||
" let g:haskell_disable_TH = 1
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'Twinside/vim-hoogle'
|
||||
on_ft = ['haskell']
|
||||
hook_add = '''
|
||||
nnoremap <leader>ho :Hoogle<CR>
|
||||
nnoremap <leader>hc :HoogleClose<CR>
|
||||
'''
|
||||
[[plugins]]
|
||||
repo = 'alx741/vim-stylishask'
|
||||
on_ft = ['haskell']
|
||||
hook_add = '''
|
||||
let g:stylishask_on_save = 0
|
||||
'''
|
||||
|
||||
[[plugins]]
|
||||
repo = 'fatih/vim-go'
|
||||
on_ft = ['go']
|
||||
hook_post_source = 'GoInstallBinaries'
|
||||
|
||||
# rust
|
||||
[[plugins]]
|
||||
repo = 'rust-lang/rust.vim'
|
||||
on_ft = ['rust']
|
||||
|
||||
# javascript
|
||||
[[plugins]]
|
||||
repo = 'pangloss/vim-javascript'
|
||||
on_ft = ['javascript']
|
||||
|
||||
# python
|
||||
[[plugins]]
|
||||
repo = 'python-mode/python-mode'
|
||||
on_ft = ['python']
|
||||
#[[plugins]]
|
||||
# repo = 'zchee/deoplete-jedi'
|
||||
# on_ft = ['python']
|
||||
#[[plugins]]
|
||||
# repo = 'davidhalter/jedi-vim'
|
||||
# on_ft = ['python']
|
||||
[[plugins]]
|
||||
repo = 'manicmaniac/coconut.vim'
|
||||
on_ft = ['python']
|
||||
[[plugins]]
|
||||
repo = 'alfredodeza/pytest.vim'
|
||||
on_ft = ['python']
|
||||
[[plugins]]
|
||||
repo = 'idanarye/vim-vebugger'
|
||||
on_ft = ['python']
|
||||
|
||||
# scala
|
||||
[[plugins]]
|
||||
repo = 'derekwyatt/vim-scala'
|
||||
on_ft = ['scala']
|
||||
|
||||
# typescript
|
||||
[[plugins]]
|
||||
repo = 'leafgarland/typescript-vim'
|
||||
on_ft = ['typescript']
|
||||
[[plugins]]
|
||||
repo = 'Quramy/tsuquyomi'
|
||||
on_ft = ['typescript']
|
||||
|
||||
|
||||
# color and beauty
|
||||
# [[plugins]]
|
||||
# repo = 'tomasiser/vim-code-dark'
|
||||
# [[plugins]]
|
||||
# repo = 'romainl/Apprentice'
|
||||
# [[plugins]]
|
||||
# repo = 'chriskempson/base16-vim'
|
||||
# [[plugins]]
|
||||
# repo = 'fneu/breezy'
|
||||
# [[plugins]]
|
||||
# repo = 'romainl/Disciple'
|
||||
# [[plugins]]
|
||||
# repo = 'wimstefan/Lightning'
|
||||
# [[plugins]]
|
||||
# repo = 'NLKNguyen/papercolor-theme'
|
||||
# [[plugins]]
|
||||
# repo = 'flazz/vim-colorschemes'
|
||||
[[plugins]]
|
||||
repo = 'overcache/NeoSolarized'
|
||||
hook_add = '''
|
||||
let g:neosolarized_contrast = 'normal'
|
||||
let g:neosolarized_visibility = 'normal'
|
||||
let g:neosolarized_vertSplitBgTrans = 0
|
||||
let g:neosolarized_bold = 1
|
||||
let g:neosolarized_underline = 1
|
||||
let g:neosolarized_italic = 1
|
||||
set background=dark
|
||||
colorscheme NeoSolarized
|
||||
'''
|
||||
# repo = 'reedes/vim-colors-pencil'
|
||||
# [[plugins]]
|
||||
# repo = 'whatyouhide/vim-gotham'
|
||||
# [[plugins]]
|
||||
# repo = 'noahfrederick/vim-hemisu'
|
||||
# [[plugins]]
|
||||
# repo = 'morhetz/gruvbox'
|
||||
|
||||
# toml
|
||||
[[plugins]]
|
||||
repo = 'https://github.com/cespare/vim-toml'
|
||||
|
||||
# unmanaged
|
||||
[[plugins]]
|
||||
name = 'L9'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'L9'
|
||||
[[plugins]]
|
||||
name = 'ScrollColor'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'ScrollColor'
|
||||
[[plugins]]
|
||||
name = 'bufonly'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'bufonly'
|
||||
[[plugins]]
|
||||
name = 'colorschemedgrade'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'colorschemedegrade'
|
||||
[[plugins]]
|
||||
name = 'exheres-syntax'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'exheres-syntax-20160116'
|
||||
[[plugins]]
|
||||
name = 'fontzoom'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'fontzoom'
|
||||
on_if = '!has("nvim")'
|
||||
[[plugins]]
|
||||
name = 'fuzzyfinder'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'fuzzyfinder'
|
||||
[[plugins]]
|
||||
name = 'log'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'log'
|
||||
#[[plugins]]
|
||||
#repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
#rtp = 'paredit'
|
||||
#[[plugins]]
|
||||
#repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
#rtp = 'tslime'
|
||||
[[plugins]]
|
||||
name = 'txtfmt'
|
||||
repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git'
|
||||
rtp = 'txtfmt'
|
||||
@@ -1,379 +0,0 @@
|
||||
" Vim syntax file
|
||||
"
|
||||
" Modification of vims Haskell syntax file:
|
||||
" - match types using regular expression
|
||||
" - highlight toplevel functions
|
||||
" - use "syntax keyword" instead of "syntax match" where appropriate
|
||||
" - functions and types in import and module declarations are matched
|
||||
" - removed hs_highlight_more_types (just not needed anymore)
|
||||
" - enable spell checking in comments and strings only
|
||||
" - FFI highlighting
|
||||
" - QuasiQuotation
|
||||
" - top level Template Haskell slices
|
||||
" - PackageImport
|
||||
"
|
||||
" TODO: find out which vim versions are still supported
|
||||
"
|
||||
" From Original file:
|
||||
" ===================
|
||||
"
|
||||
" Language: Haskell
|
||||
" Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org>
|
||||
" Last Change: 2010 Feb 21
|
||||
" Original Author: John Williams <jrw@pobox.com>
|
||||
"
|
||||
" Thanks to Ryan Crumley for suggestions and John Meacham for
|
||||
" pointing out bugs. Also thanks to Ian Lynagh and Donald Bruce Stewart
|
||||
" for providing the inspiration for the inclusion of the handling
|
||||
" of C preprocessor directives, and for pointing out a bug in the
|
||||
" end-of-line comment handling.
|
||||
"
|
||||
" Options-assign a value to these variables to turn the option on:
|
||||
"
|
||||
" hs_highlight_delimiters - Highlight delimiter characters--users
|
||||
" with a light-colored background will
|
||||
" probably want to turn this on.
|
||||
" hs_highlight_boolean - Treat True and False as keywords.
|
||||
" hs_highlight_types - Treat names of primitive types as keywords.
|
||||
" hs_highlight_debug - Highlight names of debugging functions.
|
||||
" hs_allow_hash_operator - Don't highlight seemingly incorrect C
|
||||
" preprocessor directives but assume them to be
|
||||
" operators
|
||||
"
|
||||
"
|
||||
|
||||
if version < 600
|
||||
syn clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
"syntax sync fromstart "mmhhhh.... is this really ok to do so?
|
||||
syntax sync linebreaks=15 minlines=50 maxlines=500
|
||||
|
||||
syn match hsSpecialChar contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)"
|
||||
syn match hsSpecialChar contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)"
|
||||
syn match hsSpecialCharError contained "\\&\|'''\+"
|
||||
sy region hsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=hsSpecialChar,@Spell
|
||||
sy match hsCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=hsSpecialChar,hsSpecialCharError
|
||||
sy match hsCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hsSpecialCharError
|
||||
|
||||
" (Qualified) identifiers (no default highlighting)
|
||||
syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[A-Z][a-zA-Z0-9_']*\>"
|
||||
syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[a-z][a-zA-Z0-9_']*\>"
|
||||
|
||||
" Infix operators--most punctuation characters and any (qualified) identifier
|
||||
" enclosed in `backquotes`. An operator starting with : is a constructor,
|
||||
" others are variables (e.g. functions).
|
||||
syn match hsVarSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[-!#$%&\*\+/<=>\?@\\^|~.][-!#$%&\*\+/<=>\?@\\^|~:.]*"
|
||||
syn match hsConSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./<=>\?@\\^|~:]*"
|
||||
syn match hsVarSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[a-z][a-zA-Z0-9_']*`"
|
||||
syn match hsConSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[A-Z][a-zA-Z0-9_']*`"
|
||||
|
||||
" Toplevel Template Haskell support
|
||||
"sy match hsTHTopLevel "^[a-z]\(\(.\&[^=]\)\|\(\n[^a-zA-Z0-9]\)\)*"
|
||||
sy match hsTHIDTopLevel "^[a-z]\S*"
|
||||
sy match hsTHTopLevel "^\$(\?" nextgroup=hsTHTopLevelName
|
||||
sy match hsTHTopLevelName "[a-z]\S*" contained
|
||||
|
||||
" Reserved symbols--cannot be overloaded.
|
||||
syn match hsDelimiter "(\|)\|\[\|\]\|,\|;\|_\|{\|}"
|
||||
|
||||
sy region hsInnerParen start="(" end=")" contained contains=hsInnerParen,hsConSym,hsType,hsVarSym
|
||||
sy region hs_InfixOpFunctionName start="^(" end=")\s*[^:`]\(\W\&\S\&[^'\"`()[\]{}@]\)\+"re=s
|
||||
\ contained keepend contains=hsInnerParen,hs_HlInfixOp
|
||||
|
||||
sy match hs_hlFunctionName "[a-z_]\(\S\&[^,\(\)\[\]]\)*" contained
|
||||
sy match hs_FunctionName "^[a-z_]\(\S\&[^,\(\)\[\]]\)*" contained contains=hs_hlFunctionName
|
||||
sy match hs_HighliteInfixFunctionName "`[a-z_][^`]*`" contained
|
||||
sy match hs_InfixFunctionName "^\S[^=]*`[a-z_][^`]*`"me=e-1 contained contains=hs_HighliteInfixFunctionName,hsType,hsConSym,hsVarSym,hsString,hsCharacter
|
||||
sy match hs_HlInfixOp "\(\W\&\S\&[^`(){}'[\]]\)\+" contained contains=hsString
|
||||
sy match hs_InfixOpFunctionName "^\(\(\w\|[[\]{}]\)\+\|\(\".*\"\)\|\('.*'\)\)\s*[^:]=*\(\W\&\S\&[^='\"`()[\]{}@]\)\+"
|
||||
\ contained contains=hs_HlInfixOp,hsCharacter
|
||||
|
||||
sy match hs_OpFunctionName "(\(\W\&[^(),\"]\)\+)" contained
|
||||
"sy region hs_Function start="^["'a-z_([{]" end="=\(\s\|\n\|\w\|[([]\)" keepend extend
|
||||
sy region hs_Function start="^["'a-zA-Z_([{]\(\(.\&[^=]\)\|\(\n\s\)\)*=" end="\(\s\|\n\|\w\|[([]\)"
|
||||
\ contains=hs_OpFunctionName,hs_InfixOpFunctionName,hs_InfixFunctionName,hs_FunctionName,hsType,hsConSym,hsVarSym,hsString,hsCharacter
|
||||
|
||||
sy match hs_TypeOp "::"
|
||||
sy match hs_DeclareFunction "^[a-z_(]\S*\(\s\|\n\)*::" contains=hs_FunctionName,hs_OpFunctionName,hs_TypeOp
|
||||
|
||||
" hi hs_TypeOp guibg=red
|
||||
|
||||
" hi hs_InfixOpFunctionName guibg=yellow
|
||||
" hi hs_Function guibg=green
|
||||
" hi hs_InfixFunctionName guibg=red
|
||||
" hi hs_DeclareFunction guibg=red
|
||||
|
||||
sy keyword hsStructure data family class where instance default deriving
|
||||
sy keyword hsTypedef type newtype
|
||||
|
||||
sy keyword hsInfix infix infixl infixr
|
||||
sy keyword hsStatement do case of let in
|
||||
sy keyword hsConditional if then else
|
||||
|
||||
"if exists("hs_highlight_types")
|
||||
" Primitive types from the standard prelude and libraries.
|
||||
sy match hsType "\<[A-Z]\(\S\&[^,.]\)*\>"
|
||||
sy match hsType "()"
|
||||
"endif
|
||||
|
||||
" Not real keywords, but close.
|
||||
if exists("hs_highlight_boolean")
|
||||
" Boolean constants from the standard prelude.
|
||||
syn keyword hsBoolean True False
|
||||
endif
|
||||
|
||||
syn region hsPackageString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial contained
|
||||
sy match hsModuleName excludenl "\([A-Z]\w*\.\?\)*" contained
|
||||
|
||||
sy match hsImport "\<import\>\s\+\(qualified\s\+\)\?\(\<\(\w\|\.\)*\>\)"
|
||||
\ contains=hsModuleName,hsImportLabel
|
||||
\ nextgroup=hsImportParams,hsImportIllegal skipwhite
|
||||
sy keyword hsImportLabel import qualified contained
|
||||
|
||||
sy match hsImportIllegal "\w\+" contained
|
||||
|
||||
sy keyword hsAsLabel as contained
|
||||
sy keyword hsHidingLabel hiding contained
|
||||
|
||||
sy match hsImportParams "as\s\+\(\w\+\)" contained
|
||||
\ contains=hsModuleName,hsAsLabel
|
||||
\ nextgroup=hsImportParams,hsImportIllegal skipwhite
|
||||
sy match hsImportParams "hiding" contained
|
||||
\ contains=hsHidingLabel
|
||||
\ nextgroup=hsImportParams,hsImportIllegal skipwhite
|
||||
sy region hsImportParams start="(" end=")" contained
|
||||
\ contains=hsBlockComment,hsLineComment, hsType,hsDelimTypeExport,hs_hlFunctionName,hs_OpFunctionName
|
||||
\ nextgroup=hsImportIllegal skipwhite
|
||||
|
||||
" hi hsImport guibg=red
|
||||
"hi hsImportParams guibg=bg
|
||||
"hi hsImportIllegal guibg=bg
|
||||
"hi hsModuleName guibg=bg
|
||||
|
||||
"sy match hsImport "\<import\>\(.\|[^(]\)*\((.*)\)\?"
|
||||
" \ contains=hsPackageString,hsImportLabel,hsImportMod,hsModuleName,hsImportList
|
||||
"sy keyword hsImportLabel import contained
|
||||
"sy keyword hsImportMod as qualified hiding contained
|
||||
"sy region hsImportListInner start="(" end=")" contained keepend extend contains=hs_OpFunctionName
|
||||
"sy region hsImportList matchgroup=hsImportListParens start="("rs=s+1 end=")"re=e-1
|
||||
" \ contained
|
||||
" \ keepend extend
|
||||
" \ contains=hsType,hsLineComment,hsBlockComment,hs_hlFunctionName,hsImportListInner
|
||||
|
||||
|
||||
|
||||
" new module highlighting
|
||||
syn region hsDelimTypeExport start="\<[A-Z]\(\S\&[^,.]\)*\>(" end=")" contained
|
||||
\ contains=hsType
|
||||
|
||||
sy keyword hsExportModuleLabel module contained
|
||||
sy match hsExportModule "\<module\>\(\s\|\t\|\n\)*\([A-Z]\w*\.\?\)*" contained contains=hsExportModuleLabel,hsModuleName
|
||||
|
||||
sy keyword hsModuleStartLabel module contained
|
||||
sy keyword hsModuleWhereLabel where contained
|
||||
|
||||
syn match hsModuleStart "^module\(\s\|\n\)*\(\<\(\w\|\.\)*\>\)\(\s\|\n\)*"
|
||||
\ contains=hsModuleStartLabel,hsModuleName
|
||||
\ nextgroup=hsModuleCommentA,hsModuleExports,hsModuleWhereLabel
|
||||
|
||||
syn region hsModuleCommentA start="{-" end="-}"
|
||||
\ contains=hsModuleCommentA,hsCommentTodo,@Spell contained
|
||||
\ nextgroup=hsModuleCommentA,hsModuleExports,hsModuleWhereLabel skipwhite skipnl
|
||||
|
||||
syn match hsModuleCommentA "--.*\n"
|
||||
\ contains=hsCommentTodo,@Spell contained
|
||||
\ nextgroup=hsModuleCommentA,hsModuleExports,hsModuleWhereLabel skipwhite skipnl
|
||||
|
||||
syn region hsModuleExports start="(" end=")" contained
|
||||
\ nextgroup=hsModuleCommentB,hsModuleWhereLabel skipwhite skipnl
|
||||
\ contains=hsBlockComment,hsLineComment,hsType,hsDelimTypeExport,hs_hlFunctionName,hs_OpFunctionName,hsExportModule
|
||||
|
||||
syn match hsModuleCommentB "--.*\n"
|
||||
\ contains=hsCommentTodo,@Spell contained
|
||||
\ nextgroup=hsModuleCommentB,hsModuleWhereLabel skipwhite skipnl
|
||||
|
||||
syn region hsModuleCommentB start="{-" end="-}"
|
||||
\ contains=hsModuleCommentB,hsCommentTodo,@Spell contained
|
||||
\ nextgroup=hsModuleCommentB,hsModuleWhereLabel skipwhite skipnl
|
||||
" end module highlighting
|
||||
|
||||
" FFI support
|
||||
sy keyword hsFFIForeign foreign contained
|
||||
"sy keyword hsFFIImportExport import export contained
|
||||
sy keyword hsFFIImportExport export contained
|
||||
sy keyword hsFFICallConvention ccall stdcall contained
|
||||
sy keyword hsFFISafety safe unsafe contained
|
||||
sy region hsFFIString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=hsSpecialChar
|
||||
sy match hsFFI excludenl "\<foreign\>\(.\&[^\"]\)*\"\(.\)*\"\(\s\|\n\)*\(.\)*::"
|
||||
\ keepend
|
||||
\ contains=hsFFIForeign,hsFFIImportExport,hsFFICallConvention,hsFFISafety,hsFFIString,hs_OpFunctionName,hs_hlFunctionName
|
||||
|
||||
|
||||
sy match hsNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
|
||||
sy match hsFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
|
||||
|
||||
" Comments
|
||||
sy keyword hsCommentTodo TODO FIXME XXX TBD contained
|
||||
sy match hsLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=hsCommentTodo,@Spell
|
||||
sy region hsBlockComment start="{-" end="-}" contains=hsBlockComment,hsCommentTodo,@Spell
|
||||
sy region hsPragma start="{-#" end="#-}"
|
||||
|
||||
" Liquid Types
|
||||
sy region hsLiquidAnnot start="{-@\s*" end="@-}" contains=hsLiquidKeyword,hsLiquidReftA,hsLiquidReftB,hsLiquidReftC
|
||||
sy region hsLiquidAnnot start="{-@\s*\<invariant\>" end="@-}" contains=hsLiquidKeyword,hsLiquidReftA,hsLiquidReftB,hsLiquidReftC
|
||||
sy region hsLiquidAnnot start="{-@\s*\<predicate\>" end="@-}" contains=hsLiquidKeyword,hsLiquidReftA,hsLiquidReftB,hsLiquidReftC
|
||||
sy region hsLiquidAnnot start="{-@\s*\<assert\>" end="@-}" contains=hsLiquidKeyword,hsLiquidReftA,hsLiquidReftB,hsLiquidReftC
|
||||
sy region hsLiquidAnnot start="{-@\s*\<type\>" end="@-}" contains=hsLiquidKeyword,hsLiquidReftA,hsLiquidReftB,hsLiquidReftC
|
||||
sy region hsLiquidAnnot start="{-@\s*\<data\>" end="@-}" contains=hsLiquidKeyword,hsLiquidReftA,hsLiquidReftB,hsLiquidReftC
|
||||
sy keyword hsLiquidKeyword assume assert invariant predicate type data contained
|
||||
sy region hsLiquidReftA start="{\(\s\|\w\)" end=":" contained
|
||||
sy region hsLiquidReftB start="|" end="}" contained
|
||||
sy match hsLiquidReftC "\w*:" contained
|
||||
|
||||
" QuasiQuotation
|
||||
sy region hsQQ start="\[\$" end="|\]"me=e-2 keepend contains=hsQQVarID,hsQQContent nextgroup=hsQQEnd
|
||||
sy region hsQQNew start="\[\(.\&[^|]\&\S\)*|" end="|\]"me=e-2 keepend contains=hsQQVarIDNew,hsQQContent nextgroup=hsQQEnd
|
||||
sy match hsQQContent ".*" contained
|
||||
sy match hsQQEnd "|\]" contained
|
||||
sy match hsQQVarID "\[\$\(.\&[^|]\)*|" contained
|
||||
sy match hsQQVarIDNew "\[\(.\&[^|]\)*|" contained
|
||||
|
||||
if exists("hs_highlight_debug")
|
||||
" Debugging functions from the standard prelude.
|
||||
syn keyword hsDebug undefined error trace
|
||||
endif
|
||||
|
||||
|
||||
" C Preprocessor directives. Shamelessly ripped from c.vim and trimmed
|
||||
" First, see whether to flag directive-like lines or not
|
||||
if (!exists("hs_allow_hash_operator"))
|
||||
syn match cError display "^\s*\(%:\|#\).*$"
|
||||
endif
|
||||
" Accept %: for # (C99)
|
||||
syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCommentError
|
||||
syn match cPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
|
||||
syn region cCppOut start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2
|
||||
syn region cCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cCppSkip
|
||||
syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cCppSkip
|
||||
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match cIncluded display contained "<[^>]*>"
|
||||
syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
|
||||
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cCppOut,cCppOut2,cCppSkip,cCommentStartError
|
||||
syn region cDefine matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$"
|
||||
syn region cPreProc matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend
|
||||
|
||||
syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=cCommentStartError,cSpaceError contained
|
||||
syntax match cCommentError display "\*/" contained
|
||||
syntax match cCommentStartError display "/\*"me=e-1 contained
|
||||
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial contained
|
||||
|
||||
|
||||
if version >= 508 || !exists("did_hs_syntax_inits")
|
||||
if version < 508
|
||||
let did_hs_syntax_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink hs_hlFunctionName Function
|
||||
HiLink hs_HighliteInfixFunctionName Function
|
||||
HiLink hs_HlInfixOp Function
|
||||
HiLink hs_OpFunctionName Function
|
||||
HiLink hsTypedef Typedef
|
||||
HiLink hsVarSym hsOperator
|
||||
HiLink hsConSym hsOperator
|
||||
if exists("hs_highlight_delimiters")
|
||||
" Some people find this highlighting distracting.
|
||||
HiLink hsDelimiter Delimiter
|
||||
endif
|
||||
|
||||
HiLink hsModuleStartLabel Structure
|
||||
HiLink hsExportModuleLabel Keyword
|
||||
HiLink hsModuleWhereLabel Structure
|
||||
HiLink hsModuleName Normal
|
||||
|
||||
HiLink hsImportIllegal Error
|
||||
HiLink hsAsLabel hsImportLabel
|
||||
HiLink hsHidingLabel hsImportLabel
|
||||
HiLink hsImportLabel Include
|
||||
HiLink hsImportMod Include
|
||||
HiLink hsPackageString hsString
|
||||
|
||||
HiLink hsOperator Operator
|
||||
|
||||
HiLink hsInfix Keyword
|
||||
HiLink hsStructure Structure
|
||||
HiLink hsStatement Statement
|
||||
HiLink hsConditional Conditional
|
||||
|
||||
HiLink hsSpecialCharError Error
|
||||
HiLink hsSpecialChar SpecialChar
|
||||
HiLink hsString String
|
||||
HiLink hsFFIString String
|
||||
HiLink hsCharacter Character
|
||||
HiLink hsNumber Number
|
||||
HiLink hsFloat Float
|
||||
|
||||
HiLink hsLiterateComment hsComment
|
||||
HiLink hsBlockComment hsComment
|
||||
HiLink hsLineComment hsComment
|
||||
HiLink hsModuleCommentA hsComment
|
||||
HiLink hsModuleCommentB hsComment
|
||||
HiLink hsComment Comment
|
||||
HiLink hsCommentTodo Todo
|
||||
HiLink hsPragma SpecialComment
|
||||
HiLink hsBoolean Boolean
|
||||
|
||||
" Liquid Types
|
||||
HiLink hsLiquidAnnot SpecialComment "String
|
||||
HiLink hsLiquidKeyword Operator "Float
|
||||
HiLink hsLiquidReftA Include
|
||||
HiLink hsLiquidReftB Include
|
||||
HiLink hsLiquidReftC Include
|
||||
|
||||
if exists("hs_highlight_types")
|
||||
HiLink hsDelimTypeExport hsType
|
||||
HiLink hsType Type
|
||||
endif
|
||||
|
||||
HiLink hsDebug Debug
|
||||
|
||||
HiLink hs_TypeOp hsOperator
|
||||
|
||||
HiLink cCppString hsString
|
||||
HiLink cCommentStart hsComment
|
||||
HiLink cCommentError hsError
|
||||
HiLink cCommentStartError hsError
|
||||
HiLink cInclude Include
|
||||
HiLink cPreProc PreProc
|
||||
HiLink cDefine Macro
|
||||
HiLink cIncluded hsString
|
||||
HiLink cError Error
|
||||
HiLink cPreCondit PreCondit
|
||||
HiLink cComment Comment
|
||||
HiLink cCppSkip cCppOut
|
||||
HiLink cCppOut2 cCppOut
|
||||
HiLink cCppOut Comment
|
||||
|
||||
HiLink hsFFIForeign Keyword
|
||||
HiLink hsFFIImportExport Structure
|
||||
HiLink hsFFICallConvention Keyword
|
||||
HiLink hsFFISafety Keyword
|
||||
|
||||
HiLink hsTHIDTopLevel Macro
|
||||
HiLink hsTHTopLevelName Macro
|
||||
|
||||
HiLink hsQQVarID Keyword
|
||||
HiLink hsQQVarIDNew Keyword
|
||||
HiLink hsQQEnd Keyword
|
||||
HiLink hsQQContent String
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "haskell"
|
||||
|
||||
105
syntax/proto.vim
105
syntax/proto.vim
@@ -1,105 +0,0 @@
|
||||
" Protocol Buffers - Google's data interchange format
|
||||
" Copyright 2008 Google Inc. All rights reserved.
|
||||
" https://developers.google.com/protocol-buffers/
|
||||
"
|
||||
" Redistribution and use in source and binary forms, with or without
|
||||
" modification, are permitted provided that the following conditions are
|
||||
" met:
|
||||
"
|
||||
" * Redistributions of source code must retain the above copyright
|
||||
" notice, this list of conditions and the following disclaimer.
|
||||
" * Redistributions in binary form must reproduce the above
|
||||
" copyright notice, this list of conditions and the following disclaimer
|
||||
" in the documentation and/or other materials provided with the
|
||||
" distribution.
|
||||
" * Neither the name of Google Inc. nor the names of its
|
||||
" contributors may be used to endorse or promote products derived from
|
||||
" this software without specific prior written permission.
|
||||
"
|
||||
" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
" This is the Vim syntax file for Google Protocol Buffers.
|
||||
"
|
||||
" Usage:
|
||||
"
|
||||
" 1. cp proto.vim ~/.vim/syntax/
|
||||
" 2. Add the following to ~/.vimrc:
|
||||
"
|
||||
" augroup filetype
|
||||
" au! BufRead,BufNewFile *.proto setfiletype proto
|
||||
" augroup end
|
||||
"
|
||||
" Or just create a new file called ~/.vim/ftdetect/proto.vim with the
|
||||
" previous lines on it.
|
||||
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn case match
|
||||
|
||||
syn keyword pbTodo contained TODO FIXME XXX
|
||||
syn cluster pbCommentGrp contains=pbTodo
|
||||
|
||||
syn keyword pbSyntax syntax import option
|
||||
syn keyword pbStructure package message group oneof
|
||||
syn keyword pbRepeat optional required repeated
|
||||
syn keyword pbDefault default
|
||||
syn keyword pbExtend extend extensions to max reserved
|
||||
syn keyword pbRPC service rpc returns
|
||||
|
||||
syn keyword pbType int32 int64 uint32 uint64 sint32 sint64
|
||||
syn keyword pbType fixed32 fixed64 sfixed32 sfixed64
|
||||
syn keyword pbType float double bool string bytes
|
||||
syn keyword pbTypedef enum
|
||||
syn keyword pbBool true false
|
||||
|
||||
syn match pbInt /-\?\<\d\+\>/
|
||||
syn match pbInt /\<0[xX]\x+\>/
|
||||
syn match pbFloat /\<-\?\d*\(\.\d*\)\?/
|
||||
syn region pbComment start="\/\*" end="\*\/" contains=@pbCommentGrp
|
||||
syn region pbComment start="//" skip="\\$" end="$" keepend contains=@pbCommentGrp
|
||||
syn region pbString start=/"/ skip=/\\./ end=/"/
|
||||
syn region pbString start=/'/ skip=/\\./ end=/'/
|
||||
|
||||
if version >= 508 || !exists("did_proto_syn_inits")
|
||||
if version < 508
|
||||
let did_proto_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink pbTodo Todo
|
||||
|
||||
HiLink pbSyntax Include
|
||||
HiLink pbStructure Structure
|
||||
HiLink pbRepeat Repeat
|
||||
HiLink pbDefault Keyword
|
||||
HiLink pbExtend Keyword
|
||||
HiLink pbRPC Keyword
|
||||
HiLink pbType Type
|
||||
HiLink pbTypedef Typedef
|
||||
HiLink pbBool Boolean
|
||||
|
||||
HiLink pbInt Number
|
||||
HiLink pbFloat Float
|
||||
HiLink pbComment Comment
|
||||
HiLink pbString String
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "proto"
|
||||
258
vimrc
258
vimrc
@@ -1,254 +1,22 @@
|
||||
" ===== hasufell's vimrc ))))
|
||||
call plug#begin('~/.vim/plugged')
|
||||
|
||||
" no ATTENTION messages when swap file is already found
|
||||
set shortmess+=A
|
||||
|
||||
let g:pymode_python = 'python3'
|
||||
|
||||
" plugin stuff
|
||||
filetype plugin on
|
||||
filetype indent on
|
||||
|
||||
set backspace=indent,eol,start " backspace through everything in insert mode
|
||||
set cmdheight=1
|
||||
|
||||
set wildmenu
|
||||
" set wildmode=longest,list,full
|
||||
|
||||
" plugins
|
||||
if &compatible
|
||||
set nocompatible " Be iMproved
|
||||
endif
|
||||
|
||||
" Required:
|
||||
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim
|
||||
|
||||
let s:toml = $HOME . '/.vim/plugins.toml'
|
||||
" Required:
|
||||
if dein#load_state($HOME . '/.cache/dein')
|
||||
call dein#begin($HOME . '/.cache/dein', [$HOME . '/.vim/vimrc', $HOME . '/.vim/plugins.toml'])
|
||||
|
||||
call dein#load_toml(s:toml)
|
||||
|
||||
" Let dein manage dein
|
||||
" Required:
|
||||
call dein#add($HOME . '/.cache/dein/repos/github.com/Shougo/dein.vim')
|
||||
|
||||
" Required:
|
||||
call dein#end()
|
||||
call dein#save_state()
|
||||
endif
|
||||
|
||||
" ===== further plugin initialization and default config =====
|
||||
so ~/.vim/plugged/cmdalias.vim/plugin/cmdalias.vim
|
||||
|
||||
" lustyexplorer
|
||||
set hidden
|
||||
|
||||
|
||||
" ==== conque ====
|
||||
" command aliases
|
||||
call CmdAlias('t','tabnew')
|
||||
" call CmdAlias('cmd','ConqueTermSplit')
|
||||
" call CmdAlias('bash','ConqueTermSplit bash<CR>')
|
||||
call CmdAlias('openall','tab sball')
|
||||
call CmdAlias('stripw','call StripTrailingWhitespaces()<CR>')
|
||||
call CmdAlias('hotkeys', 'tabnew ~/.vim/hotkeys')
|
||||
call CmdAlias('TC', 'call ToggleComment()<CR>')
|
||||
call CmdAlias('TF', 'call ToggleFoldText()<CR>')
|
||||
call CmdAlias('ctags', '!/usr/bin/ctags -R --langmap=c:.c.h --c++-kinds=+p --c-kinds=+p+x --fields=+i+a+S+t+l+m+n --extra=+q .<CR>')
|
||||
call CmdAlias('Nf', 'Neoformat')
|
||||
call CmdAlias('NF', 'Neoformat')
|
||||
call CmdAlias('nf', 'Neoformat')
|
||||
call CmdAlias('LS', 'LanguageClientStart')
|
||||
|
||||
|
||||
|
||||
" global settings
|
||||
if has('gui_running')
|
||||
set guioptions -=T
|
||||
|
||||
" disable gvim tab
|
||||
set guioptions-=e
|
||||
|
||||
set winaltkeys=no
|
||||
set guiheadroom=0
|
||||
if has('nvim')
|
||||
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||
else
|
||||
set termguicolors
|
||||
Plug 'Shougo/deoplete.nvim'
|
||||
Plug 'roxma/nvim-yarp'
|
||||
Plug 'roxma/vim-hug-neovim-rpc'
|
||||
endif
|
||||
set foldmethod=syntax "fold based on indent
|
||||
set foldnestmax=10 "deepest fold is 10 levels
|
||||
set nofoldenable "dont fold by default
|
||||
set foldlevel=1 "this is just what i useset directory=~/.vimtmp
|
||||
set mouse=a
|
||||
set autoread
|
||||
set number
|
||||
set encoding=utf8
|
||||
set guifont=Monospace\ 14
|
||||
set clipboard=unnamedplus
|
||||
set textwidth=0
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set directory=~/.vimtmp
|
||||
set modeline
|
||||
set modelines=1
|
||||
set autoindent
|
||||
set laststatus=2
|
||||
|
||||
let g:nickID = 'hasufell'
|
||||
Plug 'Shougo/neosnippet.vim'
|
||||
Plug 'honza/vim-snippets'
|
||||
|
||||
" don't yank to buffer on deletion
|
||||
" vnoremap d "_d
|
||||
" nnoremap d "_d
|
||||
vnoremap x "_x
|
||||
nnoremap x "_x
|
||||
|
||||
" Syntax
|
||||
syntax on
|
||||
|
||||
" pane navigation
|
||||
" Use ctrl-[hjkl] to select the active split!
|
||||
let g:C_Ctrl_j = 'off'
|
||||
let g:BASH_Ctrl_j = 'off'
|
||||
|
||||
try
|
||||
lang en_US
|
||||
catch
|
||||
endtry
|
||||
|
||||
" ===========================
|
||||
call plug#end()
|
||||
|
||||
|
||||
" Disable annoying auto line break
|
||||
fu! DisableBr()
|
||||
set wrap
|
||||
set linebreak
|
||||
set nolist " list disables linebreak
|
||||
set textwidth=0
|
||||
set wrapmargin=0
|
||||
set formatoptions-=t
|
||||
endfu
|
||||
|
||||
" Disable line breaks for all file types
|
||||
au BufNewFile,BufRead *.* call DisableBr()
|
||||
" Enable snipMate compatibility feature.
|
||||
let g:neosnippet#enable_snipmate_compatibility = 1
|
||||
|
||||
|
||||
" ==========copy/paste===========
|
||||
function! Paste(mode)
|
||||
if a:mode == 'v'
|
||||
normal gv
|
||||
normal "_d
|
||||
normal "+gP
|
||||
normal l
|
||||
elseif a:mode == 'i'
|
||||
set virtualedit=all
|
||||
normal `^"+gP
|
||||
let &virtualedit = ''
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
" ======select all=======
|
||||
function! Select()
|
||||
set virtualedit=all
|
||||
normal `^ggVG
|
||||
let &virtualedit = ''
|
||||
endfunction
|
||||
" =======================
|
||||
|
||||
|
||||
|
||||
" ====== traling whitespace =====
|
||||
fun! ShowTrailingWhitespace(pattern)
|
||||
if &ft == 'conque_term'
|
||||
call clearmatches()
|
||||
return
|
||||
endif
|
||||
if &ft == 'diff'
|
||||
call clearmatches()
|
||||
return
|
||||
endif
|
||||
let str=a:pattern
|
||||
if str == '1'
|
||||
match ExtraWhitespace /\s\+$/
|
||||
elseif str == '2'
|
||||
call clearmatches()
|
||||
" match ExtraWhitespace /\s\+\%#\@<!$/
|
||||
elseif str == '3'
|
||||
match ExtraWhitespace /\s\+$/
|
||||
endif
|
||||
endfun
|
||||
|
||||
|
||||
highlight ExtraWhitespace ctermbg=red guibg=red
|
||||
match ExtraWhitespace /\s\+$/
|
||||
autocmd BufWinEnter * call ShowTrailingWhitespace('1')
|
||||
autocmd InsertEnter * call ShowTrailingWhitespace('2')
|
||||
autocmd InsertLeave * call ShowTrailingWhitespace('3')
|
||||
autocmd BufWinLeave * call clearmatches()
|
||||
|
||||
|
||||
fun! StripTrailingWhitespaces()
|
||||
let l = line(".")
|
||||
let c = col(".")
|
||||
%s/\s\+$//e
|
||||
call cursor(l, c)
|
||||
endfun
|
||||
|
||||
|
||||
" ===========================
|
||||
|
||||
|
||||
" comment hiding
|
||||
func! IsComment( lnum )
|
||||
return synIDattr(synID(a:lnum, match(getline(a:lnum),'\S')+1, 1),'name') =~? 'comment'
|
||||
endfun
|
||||
|
||||
|
||||
"set fdm=expr
|
||||
set fde=IsComment(v:lnum)?1:IsComment(prevnonblank(v:lnum))?1:IsComment(nextnonblank\(v:lnum))?1:0
|
||||
|
||||
|
||||
" light #073642 dark #002b36 grey #586e75
|
||||
highlight Folded gui=NONE guifg=#586e75 guibg=#002b36
|
||||
set foldtext='\ '
|
||||
|
||||
|
||||
let g:folded = 0
|
||||
function! ToggleComment()
|
||||
if (g:folded == 0)
|
||||
highlight Comment guifg=#002b36
|
||||
let g:folded=1
|
||||
else
|
||||
highlight Comment guifg=#586e75
|
||||
let g:folded=0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
let g:myfoldtext = 0
|
||||
function! ToggleFoldText()
|
||||
if (g:myfoldtext == 0)
|
||||
set foldtext='--'.v:folddashes.'\ '.getline(v:foldstart).'\ '
|
||||
let g:myfoldtext=1
|
||||
else
|
||||
set foldtext='\ '
|
||||
let g:myfoldtext=0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
""""""""""""""""""""""""""""""
|
||||
" vim macro to jump to devhelp topics.
|
||||
""""""""""""""""""""""""""""""
|
||||
function! DevHelpCurrentWord()
|
||||
let word = expand('<cword>')
|
||||
exe '!devhelp -s ' . word . ' &'
|
||||
endfunction
|
||||
|
||||
function! ManCurrentWord()
|
||||
let word = expand('<cword>')
|
||||
exe '!man 3 ' . word
|
||||
endfunction
|
||||
|
||||
" vim:foldmethod=marker:foldlevel=0
|
||||
" deoplete
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
|
||||
Reference in New Issue
Block a user