view plugin/gutentags.vim @ 270:edd757c1e28d

Update default excluded project roots
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 12 May 2022 14:14:30 -0700
parents 6030953258fe
children
line wrap: on
line source

" gutentags.vim - Automatic ctags management for Vim
" Maintainer:   Ludovic Chabant <http://ludovic.chabant.com>
" Version:      2.0.0

" Globals {{{

if (&cp || get(g:, 'gutentags_dont_load', 0))
    finish
endif

if v:version < 704
    echoerr "gutentags: this plugin requires vim >= 7.4."
    finish
endif

if !(has('job') || (has('nvim') && exists('*jobwait')))
    echoerr "gutentags: this plugin requires the job API from Vim8 or Neovim."
    finish
endif

let g:gutentags_debug = get(g:, 'gutentags_debug', 0)

if (exists('g:loaded_gutentags') && !g:gutentags_debug)
    finish
endif
if (exists('g:loaded_gutentags') && g:gutentags_debug)
    echom "Reloaded gutentags."
endif
let g:loaded_gutentags = 1

let g:gutentags_trace = get(g:, 'gutentags_trace', 0)
let g:gutentags_fake = get(g:, 'gutentags_fake', 0)
let g:gutentags_background_update = get(g:, 'gutentags_background_update', 1)
let g:gutentags_pause_after_update = get(g:, 'gutentags_pause_after_update', 0)
let g:gutentags_enabled = get(g:, 'gutentags_enabled', 1)
let g:gutentags_modules = get(g:, 'gutentags_modules', ['ctags'])

let g:gutentags_init_user_func = get(g:, 'gutentags_init_user_func', 
            \get(g:, 'gutentags_enabled_user_func', ''))

let g:gutentags_add_ctrlp_root_markers = get(g:, 'gutentags_add_ctrlp_root_markers', 1)
let g:gutentags_add_default_project_roots = get(g:, 'gutentags_add_default_project_roots', 1)
let g:gutentags_project_root = get(g:, 'gutentags_project_root', [])
if g:gutentags_add_default_project_roots
    let g:gutentags_project_root += ['.git', '.hg', '.svn', '.bzr', '_darcs', '_FOSSIL_', '.fslckout']
endif

let g:gutentags_project_root_finder = get(g:, 'gutentags_project_root_finder', '')

let g:gutentags_project_info = get(g:, 'gutentags_project_info', [])
call add(g:gutentags_project_info, {'type': 'python', 'file': 'setup.py'})
call add(g:gutentags_project_info, {'type': 'ruby', 'file': 'Gemfile'})

let g:gutentags_exclude_project_root = get(g:, 'gutentags_exclude_project_root', 
            \['/usr/local', '/opt/homebrew', '/home/linuxbrew/.linuxbrew'])

let g:gutentags_exclude_filetypes = get(g:, 'gutentags_exclude_filetypes', [])
let g:gutentags_resolve_symlinks = get(g:, 'gutentags_resolve_symlinks', 0)
let g:gutentags_generate_on_new = get(g:, 'gutentags_generate_on_new', 1)
let g:gutentags_generate_on_missing = get(g:, 'gutentags_generate_on_missing', 1)
let g:gutentags_generate_on_write = get(g:, 'gutentags_generate_on_write', 1)
let g:gutentags_generate_on_empty_buffer = get(g:, 'gutentags_generate_on_empty_buffer', 0)
let g:gutentags_file_list_command = get(g:, 'gutentags_file_list_command', '')

let g:gutentags_use_jobs = get(g:, 'gutentags_use_jobs', has('job'))

if !exists('g:gutentags_cache_dir')
    let g:gutentags_cache_dir = ''
elseif !empty(g:gutentags_cache_dir)
    " Make sure we get an absolute/resolved path (e.g. expanding `~/`), and
    " strip any trailing slash.
    let g:gutentags_cache_dir = fnamemodify(g:gutentags_cache_dir, ':p')
    let g:gutentags_cache_dir = fnamemodify(g:gutentags_cache_dir, ':s?[/\\]$??')
endif

let g:gutentags_define_advanced_commands = get(g:, 'gutentags_define_advanced_commands', 0)

if g:gutentags_cache_dir != '' && !isdirectory(g:gutentags_cache_dir)
    call mkdir(g:gutentags_cache_dir, 'p')
endif

if has('win32')
    let g:gutentags_plat_dir = expand('<sfile>:h:h:p') . "\\plat\\win32\\"
    let g:gutentags_res_dir = expand('<sfile>:h:h:p') . "\\res\\"
    let g:gutentags_script_ext = '.cmd'
else
    let g:gutentags_plat_dir = expand('<sfile>:h:h:p') . '/plat/unix/'
    let g:gutentags_res_dir = expand('<sfile>:h:h:p') . '/res/'
    let g:gutentags_script_ext = '.sh'
endif

let g:__gutentags_vim_is_leaving = 0

" }}}

" Gutentags Setup {{{

augroup gutentags_detect
    autocmd!
    autocmd BufNewFile,BufReadPost *  call gutentags#setup_gutentags()
    autocmd VimEnter               *  if expand('<amatch>')==''|call gutentags#setup_gutentags()|endif
    autocmd VimLeavePre            *  call gutentags#on_vim_leave_pre()
    autocmd VimLeave               *  call gutentags#on_vim_leave()
augroup end

" }}}

" Toggles and Miscellaneous Commands {{{

if g:gutentags_define_advanced_commands
    command! GutentagsToggleEnabled :let g:gutentags_enabled=!g:gutentags_enabled
    command! GutentagsToggleTrace   :call gutentags#toggletrace()
endif

if g:gutentags_debug
    command! GutentagsToggleFake    :call gutentags#fake()
endif

" }}}