Mercurial > vim-gutentags
changeset 13:16fe881b8d75
Generate tags in a temp file first.
This is because otherwise jumping to a tag while the tag file is being
generated will result in a "tag file not sorted" warning.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 29 Jul 2014 16:07:11 -0700 |
parents | e9d605753a8a |
children | b8f23bf7b20f |
files | plat/unix/update_tags.sh plat/win32/update_tags.cmd |
diffstat | 2 files changed, 16 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/plat/unix/update_tags.sh Wed Jul 23 17:04:47 2014 -0700 +++ b/plat/unix/update_tags.sh Tue Jul 29 16:07:11 2014 -0700 @@ -59,16 +59,19 @@ if [[ -f "$TAGS_FILE" ]]; then if [[ "$UPDATED_SOURCE" != "" ]]; then echo "Removing references to: $UPDATED_SOURCE" - echo "grep -v $UPDATED_SOURCE \"$TAGS_FILE\" > \"$TAGS_FILE.filter\"" - grep -v $UPDATED_SOURCE "$TAGS_FILE" > "$TAGS_FILE.filter" - mv "$TAGS_FILE.filter" "$TAGS_FILE" + echo "grep -v $UPDATED_SOURCE \"$TAGS_FILE\" > \"$TAGS_FILE.temp\"" + grep -v $UPDATED_SOURCE "$TAGS_FILE" > "$TAGS_FILE.temp" CTAGS_ARGS="$CTAGS_ARGS --append $UPDATED_SOURCE" fi fi echo "Running ctags" -echo "$CTAGS_EXE -R -f \"$TAGS_FILE\" $CTAGS_ARGS" -$CTAGS_EXE -R -f "$TAGS_FILE" $CTAGS_ARGS +echo "$CTAGS_EXE -R -f \"$TAGS_FILE.temp\" $CTAGS_ARGS" +$CTAGS_EXE -R -f "$TAGS_FILE.temp" $CTAGS_ARGS + +echo "Replacing tags file" +echo "mv -f \"$TAGS_FILE.temp\" \"$TAGS_FILE\"" +mv -f "$TAGS_FILE.temp" "$TAGS_FILE" echo "Unlocking tags file..." rm -f "$TAGS_FILE.lock"
--- a/plat/win32/update_tags.cmd Wed Jul 23 17:04:47 2014 -0700 +++ b/plat/win32/update_tags.cmd Tue Jul 29 16:07:11 2014 -0700 @@ -66,17 +66,19 @@ if exist "%TAGS_FILE%" ( if not [%UPDATED_SOURCE%]==[] ( echo Removing references to: %UPDATED_SOURCE% >> %LOG_FILE% - echo type "%TAGS_FILE%" ^| findstr /V /C:"%UPDATED_SOURCE%" ^> "%TAGS_FILE%.filter" >> %LOG_FILE% - findstr /V /C:"%UPDATED_SOURCE%" "%TAGS_FILE%" > "%TAGS_FILE%.filter" - echo move /Y "%TAGS_FILE%.filter" "%TAGS_FILE%" >> %LOG_FILE% - move /Y "%TAGS_FILE%.filter" "%TAGS_FILE%" + echo type "%TAGS_FILE%" ^| findstr /V /C:"%UPDATED_SOURCE%" ^> "%TAGS_FILE%.temp" >> %LOG_FILE% + findstr /V /C:"%UPDATED_SOURCE%" "%TAGS_FILE%" > "%TAGS_FILE%.temp" set CTAGS_ARGS=--append %UPDATED_SOURCE% ) ) echo Running ctags >> %LOG_FILE% -echo "%CTAGS_EXE%" -R -f "%TAGS_FILE%" %CTAGS_ARGS% >> %LOG_FILE% -"%CTAGS_EXE%" -R -f "%TAGS_FILE%" %CTAGS_ARGS% +echo "%CTAGS_EXE%" -R -f "%TAGS_FILE%.temp" %CTAGS_ARGS% >> %LOG_FILE% +"%CTAGS_EXE%" -R -f "%TAGS_FILE%.temp" %CTAGS_ARGS% + +echo Replacing tags file >> %LOG_FILE% +echo move /Y "%TAGS_FILE%.temp" "%TAGS_FILE%" >> %LOG_FILE% +move /Y "%TAGS_FILE%.temp" "%TAGS_FILE%" >NUL 2>&1 echo Unlocking tags file... >> %LOG_FILE% del /F "%TAGS_FILE%.lock"