# HG changeset patch # User Ludovic Chabant # Date 1487380917 28800 # Node ID 1b980f5071a052a6e7e7c5457a7857cbf6257bb9 # Parent 41fa23706d9c86c530d75854c76a0aaeb6ceb38d Post-processing for `tags` files, extra args for `ctags`. diff -r 41fa23706d9c -r 1b980f5071a0 autoload/gutentags/ctags.vim --- a/autoload/gutentags/ctags.vim Fri Feb 17 17:20:57 2017 -0800 +++ b/autoload/gutentags/ctags.vim Fri Feb 17 17:21:57 2017 -0800 @@ -7,6 +7,8 @@ let g:gutentags_auto_set_tags = get(g:, 'gutentags_auto_set_tags', 1) let g:gutentags_ctags_options_file = get(g:, 'gutentags_ctags_options_file', '.gutctags') let g:gutentags_ctags_check_tagfile = get(g:, 'gutentags_ctags_check_tagfile', 0) +let g:gutentags_ctags_extra_args = get(g:, 'gutentags_ctags_extra_args', []) +let g:gutentags_ctags_post_process_cmd = get(g:, 'gutentags_ctags_post_process_cmd', '') " }}} @@ -102,6 +104,12 @@ " Omit --recursive if this project uses a file list command. let l:cmd .= ' -o "' . gutentags#get_res_file('ctags_recursive.options') . '"' endif + if !empty(g:gutentags_ctags_extra_args) + let l:cmd .= ' -O '.shellescape(join(g:gutentags_ctags_extra_args)) + endif + if !empty(g:gutentags_ctags_post_process_cmd) + let l:cmd .= ' -P '.shellescape(g:gutentags_ctags_post_process_cmd) + endif let l:proj_options_file = a:proj_dir . '/' . \g:gutentags_ctags_options_file if filereadable(l:proj_options_file) diff -r 41fa23706d9c -r 1b980f5071a0 plat/win32/update_tags.cmd --- a/plat/win32/update_tags.cmd Fri Feb 17 17:20:57 2017 -0800 +++ b/plat/win32/update_tags.cmd Fri Feb 17 17:21:57 2017 -0800 @@ -12,6 +12,7 @@ set FILE_LIST_CMD= set FILE_LIST_CMD_IS_ABSOLUTE=0 set UPDATED_SOURCE= +set POST_PROCESS_CMD= set PAUSE_BEFORE_EXIT=0 set LOG_FILE= @@ -65,6 +66,16 @@ shift goto :LoopParseArgs ) +if [%1]==[-O] ( + set CTAGS_ARGS=%CTAGS_ARGS% %~2 + shift + goto :LoopParseArgs +) +if [%1]==[-P] ( + set POST_PROCESS_CMD=%~2 + shift + goto :LoopParseArgs +) echo Invalid Argument: %1 goto :Usage @@ -98,7 +109,6 @@ set CTAGS_ARGS=%CTAGS_ARGS% "%PROJECT_ROOT%" if not ["%FILE_LIST_CMD%"]==[""] ( echo Running custom file lister >> %LOG_FILE% - echo Licensee is %LICENSEE_ID% >> %LOG_FILE% set use_raw_list=0 if ["%PROJECT_ROOT%"]==["."] set use_raw_list=1 if ["%FILE_LIST_CMD_IS_ABSOLUTE%"]==["1"] set use_raw_list=1 @@ -125,6 +135,16 @@ goto :Unlock ) +if not ["%POST_PROCESS_CMD%"]==[""] ( + echo Running post process >> %LOG_FILE% + echo call %POST_PROCESS_CMD% %TAGS_FILE%.temp >> %LOG_FILE% + call %POST_PROCESS_CMD% %TAGS_FILE%.temp >> %LOG_FILE% 2>&1 + if ERRORLEVEL 1 ( + echo ERROR: Post process returned non-zero code. >> %LOG_FILE% + goto :Unlock + ) +) + echo Replacing tags file >> %LOG_FILE% echo move /Y "%TAGS_FILE%.temp" "%TAGS_FILE%" >> %LOG_FILE% move /Y "%TAGS_FILE%.temp" "%TAGS_FILE%" >> %LOG_FILE% 2>&1