diff --git a/.gitignore b/.gitignore index d54cf96..ebf9b1e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.old *.pyc .netrwhist +.init.vim-rplugin~ diff --git a/.init.vim-rplugin~ b/.init.vim-rplugin~ deleted file mode 100644 index fa89f7d..0000000 --- a/.init.vim-rplugin~ +++ /dev/null @@ -1,12 +0,0 @@ -" python3 plugins -call remote#host#RegisterPlugin('python3', '/home/valeth/User/data/nvim/plugins/deoplete.nvim/rplugin/python3/deoplete', [ - \ {'sync': 1, 'name': '_deoplete', 'opts': {}, 'type': 'function'}, - \ ]) - - -" ruby plugins - - -" python plugins - - diff --git a/init.vim b/init.vim index 9156bc3..274e135 100644 --- a/init.vim +++ b/init.vim @@ -244,7 +244,167 @@ augroup END " Plugins {{{ call plug#begin(g:vim_data_home . '/plugins') -runtime! plugins/**/*.vim + +" deoplete {{{ +" run 'UpdateRemotePlugins' first +Plug 'Shougo/deoplete.nvim' +Plug 'Shougo/neco-syntax' +Plug 'Shougo/neoinclude.vim', { 'for': ['c', 'cpp'] } +Plug 'Rip-Rip/clang_complete', { 'for': ['c', 'cpp'] } +Plug 'zchee/deoplete-jedi', { 'for': 'python' } +Plug 'eagletmt/neco-ghc', { 'for': 'haskell' } + +let g:deoplete#enable_at_startup = 1 +" }}} + +" ctrlp.vim {{{ +Plug 'kien/ctrlp.vim' + +let g:ctrlp_cmd = "CtrlPBuffer" +let g:ctrlp_prompt_mappings = { + \ 'ToggleType(1)': ['', '', ''], + \ 'ToggleType(-1)': ['', '', ''], +\ } +" }}} + +" Gundo {{{ +Plug 'vim-scripts/Gundo', { 'on': 'GundoToggle' } + +let g:gundo_width = 60 +let g:gundo_preview_height = 30 +let g:gundo_right = 1 + +nnoremap gu :GundoToggle +vnoremap gu :GundoToggle +" }}} + +" latexsuite {{{ +set grepprg=grep\ -nH\ $* + +let g:tex_flavor = "latex" +let g:tex_fold_enabled = 1 +let g:Imap_UsePlaceHolders = 0 +let g:Tex_ViewRule_dvi = "" +let g:Tex_ViewRule_ps = "" +let g:Tex_ViewRule_pdf = "" +let g:Tex_ViewRuleComplete_dvi = "pgrep okular.*$* || xdg-open &" +let g:Tex_ViewRuleComplete_ps = "" +let g:Tex_ViewRuleComplete_pdf = "pgrep okular.*$* || xdg-open &" +let g:Tex_DefaultTargetFormat = "pdf" + +nnoremap Tex_Help +inoremap Tex_Help +nnoremap IMAP_JumpForward +vnoremap IMAP_JumpForward +"noremap :w :!pdflatex -shell-escape "%" && { pgrep ".*%:p || xdg-open %:p:r.pdf } +" }}} + +" nerdtree {{{ +Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } +Plug 'scrooloose/nerdtree-git-plugin', { 'on': 'NERDTreeToggle' } + +au bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif + +noremap nt :NERDTreeToggle +vnoremap nt :NERDTreeToggle +" }}} + +" syntastic {{{ +Plug 'scrooloose/syntastic', {'for': ['c', 'cpp', 'python', 'sh']} + +let g:syntastic_enable_signs = 1 +let g:syntastic_check_on_open = 1 +let g:syntastic_enable_highlighting = 1 +let g:syntastic_auto_loc_list = 1 +let g:syntastic_c_check_header = 1 +let g:syntastic_cpp_remove_include_errors = 1 +let g:syntastic_cpp_check_header = 1 +let g:syntastic_cpp_auto_refresh_includes = 1 +let g:syntastic_tex_checkers = ["false"] +let g:syntastic_error_symbol = '!' +let g:syntastic_warning_symbol = '?' +nnoremap syn :SyntasticToggleMode +vnoremap syn :SyntasticToggleMode +" }}} + +" tagbar {{{ +Plug 'majutsushi/tagbar' + +nnoremap tag :TagbarToggle +vnoremap tag :TagbarToggle +" }}} + +" powerline/airline {{{ +Plug 'bling/vim-airline' + +"set showtabline=2 +set laststatus=2 +set noshowmode + +"let g:powerline_pycmd = "py3" +"let g:powerline_pyeval = g:powerline_pycmd . "eval" +let g:airline#extensions#tabline#enabled = 1 +let g:airline_powerline_fonts = 1 +let g:airline_theme='dark' +" }}} + +" scratch.vim {{{ +Plug 'mtth/scratch.vim', { 'on': 'Scratch' } + +" allow autohiding +set hidden + +let g:scratch_persistence_file = g:vim_data_home . "/scratch.vim" +" }}} + +" vim-pandoc {{{ +Plug 'vim-pandoc/vim-pandoc' +Plug 'vim-pandoc/vim-pandoc-syntax' + +" the filetypes for which vim-pandoc should be used +let g:pandoc#filetypes#handles = [ "markdown", "pandoc" ] + +" enable pandoc for markdown +let g:pandoc#filetypes#pandoc_markdown = 1 + +" disable the spellchecker +let g:pandoc#spell#enabled = 0 + +" don't use the conceal functionality +let g:pandoc#syntax#conceal#use = 0 + +" would you please use the defined foldcolums settings, thanks +let g:pandoc#folding#fdc = &fdc +" }}} + +" vim-tmux-navigator {{{ +Plug 'christoomey/vim-tmux-navigator' + +" use Alt instead of Ctrl +let g:tmux_navigator_no_mappings = 1 + +nnoremap :TmuxNavigateLeft +nnoremap :TmuxNavigateDown +nnoremap :TmuxNavigateUp +nnoremap :TmuxNavigateRight +nnoremap :TmuxNavigatePrevious +" }}} + +Plug 'Konfekt/FastFold' +Plug 'Raimondi/delimitMate' +Plug 'vim-scripts/fish-syntax' +Plug 'valeth/sprak.vim', { 'for': 'sprak' } +Plug 'hoelzro/vim-polyglot' +Plug 'vim-scripts/gnupg' +Plug 'SirVer/ultisnips' +Plug 'honza/vim-snippets' +Plug 'tpope/vim-fugitive', { 'on': ['Gstatus', 'Gcommit']} +Plug 'airblade/vim-gitgutter' +Plug 'editorconfig/editorconfig-vim' +Plug 'tomasr/molokai' +Plug 'junegunn/seoul256.vim' +Plug 'NLKNguyen/papercolor-theme' +Plug 'chriskempson/tomorrow-theme' call plug#end() " }}} @@ -269,9 +429,36 @@ function! ToggleBackground() endif endfunction +function! ToggleSeoul256() + if g:colors_name == 'seoul256' + colorscheme seoul256-light + else + colorscheme seoul256 + endif +endfunction + +function! ToggleTomorrow() + if g:colors_name == 'Tomorrow-Night' + colorscheme Tomorrow + else + colorscheme Tomorrow-Night + endif +endfunction + +"let g:molokai_original = 1 +"let g:rehash256 = 1 "colorscheme molokai + +" Theme Range Default +" ----- ----- ------- +" seoul256 233 - 239 237 +" seoul256-light 252 - 256 253 +let g:seoul256_background = 237 +let g:seoul256_light_background = 254 colorscheme seoul256 + "colorscheme PaperColor + "colorscheme Tomorrow-Night " }}} diff --git a/plugins/FastFold.vim b/plugins/FastFold.vim deleted file mode 100644 index 73bafea..0000000 --- a/plugins/FastFold.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'Konfekt/FastFold' diff --git a/plugins/auto-pairs.vim b/plugins/auto-pairs.vim deleted file mode 100644 index 42b1791..0000000 --- a/plugins/auto-pairs.vim +++ /dev/null @@ -1 +0,0 @@ -"Plug 'jiangmiao/auto-pairs' diff --git a/plugins/clang_complete.vim b/plugins/clang_complete.vim deleted file mode 100644 index 74a590a..0000000 --- a/plugins/clang_complete.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'Rip-Rip/clang_complete', { 'for': ['c', 'cpp'] } diff --git a/plugins/csapprox.vim b/plugins/csapprox.vim deleted file mode 100644 index cca3371..0000000 --- a/plugins/csapprox.vim +++ /dev/null @@ -1 +0,0 @@ -"Plug 'godlygeek/csapprox' diff --git a/plugins/ctrlp.vim b/plugins/ctrlp.vim deleted file mode 100644 index 56bcfce..0000000 --- a/plugins/ctrlp.vim +++ /dev/null @@ -1,7 +0,0 @@ -Plug 'kien/ctrlp.vim' - -let g:ctrlp_cmd = "CtrlPBuffer" -let g:ctrlp_prompt_mappings = { - \ 'ToggleType(1)': ['', '', ''], - \ 'ToggleType(-1)': ['', '', ''], -\ } diff --git a/plugins/deoplete-clang.vim b/plugins/deoplete-clang.vim deleted file mode 100644 index 46c599c..0000000 --- a/plugins/deoplete-clang.vim +++ /dev/null @@ -1 +0,0 @@ -"Plug 'zchee/deoplete-clang', { 'for': ['c', 'cpp'] } diff --git a/plugins/deoplete-jedi.vim b/plugins/deoplete-jedi.vim deleted file mode 100644 index daac51a..0000000 --- a/plugins/deoplete-jedi.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'zchee/deoplete-jedi', { 'for': 'python' } diff --git a/plugins/deoplete.nvim.vim b/plugins/deoplete.nvim.vim deleted file mode 100644 index 22075bb..0000000 --- a/plugins/deoplete.nvim.vim +++ /dev/null @@ -1,7 +0,0 @@ -function! DoRemote(arg) - UpdateRemotePlugins -endfunction - -Plug 'Shougo/deoplete.nvim', { 'do': function('DoRemote') } - -let g:deoplete#enable_at_startup = 1 diff --git a/plugins/fish-syntax.vim b/plugins/fish-syntax.vim deleted file mode 100644 index 9ceb86d..0000000 --- a/plugins/fish-syntax.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'vim-scripts/fish-syntax' diff --git a/plugins/gnupg.vim b/plugins/gnupg.vim deleted file mode 100644 index 766fbc8..0000000 --- a/plugins/gnupg.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'vim-scripts/gnupg' diff --git a/plugins/gundo.vim b/plugins/gundo.vim deleted file mode 100644 index 02915ab..0000000 --- a/plugins/gundo.vim +++ /dev/null @@ -1,10 +0,0 @@ -if v:version >= 703 - Plug 'vim-scripts/Gundo', { 'on': 'GundoToggle' } -endif - -let g:gundo_width = 60 -let g:gundo_preview_height = 30 -let g:gundo_right = 1 - -nnoremap gu :GundoToggle -vnoremap gu :GundoToggle diff --git a/plugins/haskellmode.vim b/plugins/haskellmode.vim deleted file mode 100644 index eb03a43..0000000 --- a/plugins/haskellmode.vim +++ /dev/null @@ -1,5 +0,0 @@ -"Plug 'lukerandall/haskellmode-vim', { 'for': 'haskell' } - -let g:haddock_browser="/usr/bin/firefox" - -"au BufEnter *.hs compiler ghc diff --git a/plugins/latexsuite.vim b/plugins/latexsuite.vim deleted file mode 100644 index ad49b06..0000000 --- a/plugins/latexsuite.vim +++ /dev/null @@ -1,18 +0,0 @@ -set grepprg=grep\ -nH\ $* - -let g:tex_flavor = "latex" -let g:tex_fold_enabled = 1 -let g:Imap_UsePlaceHolders = 0 -let g:Tex_ViewRule_dvi = "" -let g:Tex_ViewRule_ps = "" -let g:Tex_ViewRule_pdf = "" -let g:Tex_ViewRuleComplete_dvi = "pgrep okular.*$* || xdg-open &" -let g:Tex_ViewRuleComplete_ps = "" -let g:Tex_ViewRuleComplete_pdf = "pgrep okular.*$* || xdg-open &" -let g:Tex_DefaultTargetFormat = "pdf" - -nnoremap Tex_Help -inoremap Tex_Help -nnoremap IMAP_JumpForward -vnoremap IMAP_JumpForward -"noremap :w :!pdflatex -shell-escape "%" && { pgrep ".*%:p || xdg-open %:p:r.pdf } diff --git a/plugins/molokai.vim b/plugins/molokai.vim deleted file mode 100644 index 6239b2f..0000000 --- a/plugins/molokai.vim +++ /dev/null @@ -1,4 +0,0 @@ -Plug 'tomasr/molokai' - -"let g:molokai_original = 1 -let g:rehash256 = 1 diff --git a/plugins/neco-ghc.vim b/plugins/neco-ghc.vim deleted file mode 100644 index ef17c7f..0000000 --- a/plugins/neco-ghc.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'eagletmt/neco-ghc', { 'for': 'haskell' } diff --git a/plugins/neco-syntax.vim b/plugins/neco-syntax.vim deleted file mode 100644 index 5a335a0..0000000 --- a/plugins/neco-syntax.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'Shougo/neco-syntax' diff --git a/plugins/neoinclude.vim b/plugins/neoinclude.vim deleted file mode 100644 index 4c27567..0000000 --- a/plugins/neoinclude.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'Shougo/neoinclude.vim', { 'for': ['c', 'cpp'] } diff --git a/plugins/nerdcommenter.vim b/plugins/nerdcommenter.vim deleted file mode 100644 index 4076108..0000000 --- a/plugins/nerdcommenter.vim +++ /dev/null @@ -1 +0,0 @@ -"Plug 'scrooloose/nerdcommenter' diff --git a/plugins/nerdtree.vim b/plugins/nerdtree.vim deleted file mode 100644 index c7420e7..0000000 --- a/plugins/nerdtree.vim +++ /dev/null @@ -1,6 +0,0 @@ -Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } -Plug 'scrooloose/nerdtree-git-plugin', { 'on': 'NERDTreeToggle' } - -au bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif -noremap nt :NERDTreeToggle -vnoremap nt :NERDTreeToggle diff --git a/plugins/papercolor-theme.vim b/plugins/papercolor-theme.vim deleted file mode 100644 index d521d9b..0000000 --- a/plugins/papercolor-theme.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'NLKNguyen/papercolor-theme' diff --git a/plugins/powerline.vim b/plugins/powerline.vim deleted file mode 100644 index ab64305..0000000 --- a/plugins/powerline.vim +++ /dev/null @@ -1,8 +0,0 @@ -"set noshowmode - -"if has('windows') - "set showtabline=2 -"endif - -let g:powerline_pycmd = "py3" -let g:powerline_pyeval = g:powerline_pycmd . "eval" diff --git a/plugins/scratch.vim b/plugins/scratch.vim deleted file mode 100644 index 10af4a7..0000000 --- a/plugins/scratch.vim +++ /dev/null @@ -1,6 +0,0 @@ -Plug 'mtth/scratch.vim' - -" allow autohiding -set hidden - -let g:scratch_persistence_file = g:vim_data_home . "/scratch.vim" diff --git a/plugins/seoul256.vim b/plugins/seoul256.vim deleted file mode 100644 index 77a3839..0000000 --- a/plugins/seoul256.vim +++ /dev/null @@ -1,27 +0,0 @@ -" _____ _ ___ ___ ___ " -" | __|___ ___ _ _| |_ | _| _| " -" |__ | -_| . | | | | _|_ | . | " -" |_____|___|___|___|_|___|___|___|.vim " -" -" seoul256.vim is a low-contrast Vim color scheme based on Seoul Colors. -" Works on 256-color terminal or on GVim -" by Junegunn Choi (https://github.com/junegunn/seoul256.vim) -" -" Theme Range Default -" ----- ----- ------- -" seoul256 233 - 239 237 -" seoul256-light 252 - 256 253 - -Plug 'junegunn/seoul256.vim' - -let g:seoul256_background = 237 -let g:seoul256_light_background = 254 - -function! ToggleSeoul256() - if g:colors_name == 'seoul256' - colorscheme seoul256-light - else - colorscheme seoul256 - endif -endfunction - diff --git a/plugins/sprak.vim b/plugins/sprak.vim deleted file mode 100644 index 016faa0..0000000 --- a/plugins/sprak.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'valeth/sprak.vim', { 'for': 'sprak' } diff --git a/plugins/syntastic.vim b/plugins/syntastic.vim deleted file mode 100644 index 409084d..0000000 --- a/plugins/syntastic.vim +++ /dev/null @@ -1,17 +0,0 @@ -Plug 'scrooloose/syntastic', {'for': ['c', 'cpp', 'python', 'sh']} - -let g:syntastic_enable_signs = 1 -let g:syntastic_check_on_open = 1 -let g:syntastic_enable_highlighting = 1 -let g:syntastic_auto_loc_list = 1 -let g:syntastic_c_check_header = 1 -let g:syntastic_cpp_remove_include_errors = 1 -let g:syntastic_cpp_check_header = 1 -let g:syntastic_cpp_auto_refresh_includes = 1 -let g:syntastic_tex_checkers = ["false"] - -let g:syntastic_error_symbol = '!' -let g:syntastic_warning_symbol = '?' - -nnoremap syn :SyntasticToggleMode -vnoremap syn :SyntasticToggleMode diff --git a/plugins/tagbar.vim b/plugins/tagbar.vim deleted file mode 100644 index 77916f6..0000000 --- a/plugins/tagbar.vim +++ /dev/null @@ -1,4 +0,0 @@ -Plug 'majutsushi/tagbar' - -nnoremap tag :TagbarToggle -vnoremap tag :TagbarToggle diff --git a/plugins/tomorrow-theme.vim b/plugins/tomorrow-theme.vim deleted file mode 100644 index ec16299..0000000 --- a/plugins/tomorrow-theme.vim +++ /dev/null @@ -1,10 +0,0 @@ -Plug 'chriskempson/tomorrow-theme' - -function! ToggleTomorrow() - if g:colors_name == 'Tomorrow-Night' - colorscheme Tomorrow - else - colorscheme Tomorrow-Night - endif -endfunction - diff --git a/plugins/ultisnips.vim b/plugins/ultisnips.vim deleted file mode 100644 index 9ff055a..0000000 --- a/plugins/ultisnips.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'SirVer/ultisnips' diff --git a/plugins/vim-airline.vim b/plugins/vim-airline.vim deleted file mode 100644 index 3ba3835..0000000 --- a/plugins/vim-airline.vim +++ /dev/null @@ -1,8 +0,0 @@ -Plug 'bling/vim-airline' - -let g:airline#extensions#tabline#enabled = 1 -let g:airline_powerline_fonts = 1 -let g:airline_theme='dark' - -set laststatus=2 -set noshowmode diff --git a/plugins/vim-commentary.vim b/plugins/vim-commentary.vim deleted file mode 100644 index 8c9a7a1..0000000 --- a/plugins/vim-commentary.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'tpope/vim-commentary' diff --git a/plugins/vim-editorconfig.vim b/plugins/vim-editorconfig.vim deleted file mode 100644 index 6f9332a..0000000 --- a/plugins/vim-editorconfig.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'editorconfig/editorconfig-vim' diff --git a/plugins/vim-fugitive.vim b/plugins/vim-fugitive.vim deleted file mode 100644 index 2434ce6..0000000 --- a/plugins/vim-fugitive.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'tpope/vim-fugitive' diff --git a/plugins/vim-gitgutter.vim b/plugins/vim-gitgutter.vim deleted file mode 100644 index c6feaf5..0000000 --- a/plugins/vim-gitgutter.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'airblade/vim-gitgutter' diff --git a/plugins/vim-haskellConceal.vim b/plugins/vim-haskellConceal.vim deleted file mode 100644 index 3623ed2..0000000 --- a/plugins/vim-haskellConceal.vim +++ /dev/null @@ -1 +0,0 @@ -"Plug 'Twinside/vim-haskellConceal', { 'for': 'haskell' } diff --git a/plugins/vim-hoogle.vim b/plugins/vim-hoogle.vim deleted file mode 100644 index 1ed33be..0000000 --- a/plugins/vim-hoogle.vim +++ /dev/null @@ -1 +0,0 @@ -"Plug 'Twinside/vim-hoogle', { 'for': 'haskell' } diff --git a/plugins/vim-pandoc.vim b/plugins/vim-pandoc.vim deleted file mode 100644 index 01c216c..0000000 --- a/plugins/vim-pandoc.vim +++ /dev/null @@ -1,17 +0,0 @@ -Plug 'vim-pandoc/vim-pandoc' -Plug 'vim-pandoc/vim-pandoc-syntax' - -" the filetypes for which vim-pandoc should be used -let g:pandoc#filetypes#handles = [ "markdown", "pandoc" ] - -" enable pandoc for markdown -let g:pandoc#filetypes#pandoc_markdown = 1 - -" disable the spellchecker -let g:pandoc#spell#enabled = 0 - -" don't use the conceal functionality -let g:pandoc#syntax#conceal#use = 0 - -" would you please use the defined foldcolums settings, thanks -let g:pandoc#folding#fdc = &fdc diff --git a/plugins/vim-polyglot.vim b/plugins/vim-polyglot.vim deleted file mode 100644 index 1f75db5..0000000 --- a/plugins/vim-polyglot.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'hoelzro/vim-polyglot' diff --git a/plugins/vim-snippets.vim b/plugins/vim-snippets.vim deleted file mode 100644 index 7f28bf8..0000000 --- a/plugins/vim-snippets.vim +++ /dev/null @@ -1 +0,0 @@ -Plug 'honza/vim-snippets' diff --git a/plugins/vim-tmux-navigator.vim b/plugins/vim-tmux-navigator.vim deleted file mode 100644 index 797a00d..0000000 --- a/plugins/vim-tmux-navigator.vim +++ /dev/null @@ -1,10 +0,0 @@ -Plug 'christoomey/vim-tmux-navigator' - -" use Alt instead of Ctrl -let g:tmux_navigator_no_mappings = 1 - -nnoremap :TmuxNavigateLeft -nnoremap :TmuxNavigateDown -nnoremap :TmuxNavigateUp -nnoremap :TmuxNavigateRight -nnoremap :TmuxNavigatePrevious diff --git a/plugins/youcompleteme.vim b/plugins/youcompleteme.vim deleted file mode 100644 index a43a608..0000000 --- a/plugins/youcompleteme.vim +++ /dev/null @@ -1,7 +0,0 @@ -"Plug 'Valloric/YouCompleteMe', {'do': 'python2 install.py --clang-completer' } - -let g:ycm_global_ycm_extra_conf = g:vim_config_home . "/plugins/youcompleteme/ycm_extra_conf.py" - -let g:ycm_autoclose_preview_window_after_completion = 1 -let g:ycm_register_as_syntastic_checker = 1 -let g:ycm_server_keep_logfile = 1 diff --git a/plugins/youcompleteme/ycm_extra_conf.py b/plugins/youcompleteme/ycm_extra_conf.py deleted file mode 100644 index ba885c9..0000000 --- a/plugins/youcompleteme/ycm_extra_conf.py +++ /dev/null @@ -1,92 +0,0 @@ -import os -import ycm_core - -# 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 = "" - -flags = [ "-Wall", "-Werror", "-std=c11" ] - -if os.path.exists( compilation_database_folder ): - database = ycm_core.CompilationDatabase( compilation_database_folder ) -else: - database = None - -#SOURCE_EXTENSIONS = [ ".cpp", ".cxx", ".cc", ".c", ".m", ".mm" ] - -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 IsHeaderFile( filename ): - extension = os.path.splitext( filename )[ 1 ] - return extension in [ ".h", ".hxx", ".hpp", ".hh" ] - -def GetCompilationInfoForFile( filename ): - # The compilation_commands.json file generated by CMake does not have entries - # for header files. So we do our best by asking the db for flags for a - # corresponding source file, if any. If one exists, the flags for that file - # should be good enough. - if IsHeaderFile( filename ): - basename = os.path.splitext( filename )[ 0 ] - for extension in SOURCE_EXTENSIONS: - replacement_file = basename + extension - if os.path.exists( replacement_file ): - compilation_info = database.GetCompilationInfoForFile( - replacement_file ) - if compilation_info.compiler_flags_: - return compilation_info - return None - return database.GetCompilationInfoForFile( filename ) - -def FlagsForFile( filename, **kwargs ): - if database: - # Bear in mind that compilation_info.compiler_flags_ does NOT return a - # python list, but a "list-like" StringVec object - compilation_info = GetCompilationInfoForFile( filename ) - if not compilation_info: - return None - - final_flags = MakeRelativePathsInFlagsAbsolute( - compilation_info.compiler_flags_, - compilation_info.compiler_working_dir_ ) - - else: - relative_to = DirectoryOfThisScript() - final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to ) - - return { - "flags": final_flags, - "do_cache": True - }