Pages - Menu

標籤

AWS (1) bash (1) Boost (2) C (2) CMake (2) Concurrency_Programming (3) CPP (37) Database (2) DNS (1) Docker (4) Docker-Compose (1) ELK (1) emacs (4) gcp (1) gdrive (1) git (1) gitbash (2) gitlab (1) kvm (4) Linux (5) MT4 (4) MT5 (4) Multicast (2) MySQL (2) Nijatrader8 (1) OpenCV (1) Python (4) QT5 (1) R (1) rdp (3) screenshot (1) ssh (3) Tabnine (1) TCP (1) TensorFlow (1) Tools (12) Ubuntu_1904 (11) Ubuntu_20_04 (5) UDP (1) VS2010 (1) VS2015 (1) VS2019 (1) WebServer (1) Win10 (1) winmerge (1) WSL (1) xrdp (1)

搜尋此網誌

2020年1月5日星期日

Create cpp tags for code navigation on spacemacs

Aim

We would like to use cscope and gtags to create tags for c++ development.

prepareSpacemacsTags.sh

#!/bin/bash
buildPath="$PWD"

# remove old tags
rm ${buildPath}/GPATH
rm ${buildPath}/GRTAGS
rm ${buildPath}/GTAGS

rm ${buildPath}/cscope.files
rm ${buildPath}/cscope.out
rm ${buildPath}/cscope.in.out
rm ${buildPath}/cscope.po.out

# make tags
echo "######### make GTag"
gtags
echo "######### make cscope"
find . -name "*.cc" -o -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" > cscope.files
cscope -q -R -b -k -i cscope.files

Usage

$ cd /path/to/project/root
$ prepareSpacemacsTags.sh

prepareTags.YourProject.sh

#!/bin/bash
basePath=`pwd`
tempTagPath="$basePath/../tempTagFolder"
appFolders=("APPFolderName") # filter out

# move all folders beyond root
if [ ! -d "$tempTagPath" ]; then
    mkdir "$tempTagPath"
fi
if [ ! -d "$tempTagPath/app" ]; then
    mkdir "$tempTagPath/app"
fi
for folder in ${appFolders[@]}; do
    nextFolder="$basePath/app/$folder"
    mv $nextFolder $tempTagPath/app
done

prepareSpacemacsTags.sh

mv $tempTagPath/app/* ./app

if [ -d "$tempTagPath/app" ] && [ -z "$(ls -A $tempTagPath/app/)" ]; then
    rm -rf $tempTagPath/app
else
    echo "No need to have further action $tempTagPath/app"
fi
if [ -d "$tempTagPath" ] && [ -z "$(ls -A $tempTagPath)" ]; then
    rm -rf $tempTagPath
else
    echo "No need to have further action $tempTagPath"
fi

Usage

$ cd /path/to/project/root
$ ls
./app
./lib
$ prepareTags.YourProject.sh

沒有留言:

發佈留言