最近為了追公司專案裡的bug,需要可以方便trace ruby code的工具,另一方面,也想趁這個機會把atom的ruby自動補齊弄好。於是就看了一下atom有什麼套件可以用,最後找上了atom-ctags。不過官方的atom-ctags與ripper-tags一起用會遇到一些問題,最終的解法只能修改這兩個工具的source code來達到我想要的效果(這就是open source的好處啊)。
基本上直接使用官方的atom-ctags加上ripper-tags會遇到一些問題,下面是問題列表:
只能修改ripper-tags,讓它多一種格式專門給atom-tags來使用。
atom-ctags有一個設定是可以指定產生tag要用的ctags,所以可以替換成ripper-tags來生tag,但atom-ctags會在呼叫ctags程式時,額外產生一些內建的參數給ctags。而有些參數(例如:--options, --fields等)ripper-tags是不支援的,所以在生tag的時候就會出錯。
因為atom-ctags內建的預設參數是沒辦法使用套件設定,所以只能改程式碼。我的修改是將原本的cmdArgs套件當做是呼叫ctags傳的參數,所有的內建參數都轉成cmdArgs的預設值。這樣如果要改傳其它的參數,就可以修改這個cmdArgs的設定值。當使用修改過後的atom-ctags與ripper-tags,就可以設定atom-ctags呼叫ripper-tags來生tag了。
"*":
"atom-ctags":
cmd: "ripper-tags"
cmdArgs: "-R --exclude=vendor --format=atom"
tagsPath: "./tmp/tags"