changeset 160:1b980f5071a0

Post-processing for `tags` files, extra args for `ctags`.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 17 Feb 2017 17:21:57 -0800
parents 41fa23706d9c
children 97e1b266d045
files autoload/gutentags/ctags.vim plat/win32/update_tags.cmd
diffstat 2 files changed, 29 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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