2010-06-11 89 views
5

我無法讓taglist插件與Scala一起正常工作。我已經安裝了插件和ctags,並驗證它可以與Java和C++一起正常工作。然後,我按照這個page(減去特定於電梯的指令)的說明進行操作,但是當我在編輯Scala文件時將其打開時,taglist窗口中沒有任何顯示。有沒有人得到這個工作,什麼是適當的步驟?謝謝。有沒有人有與Scala一起工作的vim taglist插件?

回答

4

首先檢查您的標籤文件是否有內容。如果您已按照您提到的頁面上的說明操作,它應該正確識別類別,方法等。如果已經有效,那麼您可以繼續下一步。

taglist plugin有一個支持語言設置的硬編碼列表,而Scala不在其中。因此,即使CTags生成正確的標籤,該插件也不會讀取這些文件類型。

應該可以添加一個定義作爲全局變量g:tlist_def_<lang>_settings,但我一直無法讓它工作。因此,您必須修改~/.vim/plugin目錄中的taglist.vim文件以添加Scala支持。別擔心,這很容易做到!

搜索定義s:tlist_def_yacc_settings和之後添加下面的幾行的行:

let s:tlist_def_scala_settings = 'scala;t:trait;c:class;T:type;' . 
         \ 'm:method;C:constant;l:local;p:package;o:object' 

現在,當你按下Ctrl-T,你應該看到在標籤列表窗口中的產生的斯卡拉標籤。

+0

我想你已經拉近了我的距離。我現在可以使用:標記LiftSession(來自示例)跳轉到該文件和項目中的其他文件。但Ctrl-T總是返回'E73:標籤列表空'。 :TlistToggle也是空的。我會投票回答你的回答,因爲它有幫助。 – 2010-06-14 23:51:18

+0

很奇怪 - 也許標籤文件格式不知何故?我嘗試了最近的「最近」(儘管從2007年)taglist插件和ctags 2.7和2.8,以及那些與TlistToggle一起工作。唯一的區別是我的Scala文件沒有使用Lift。 – richq 2010-06-15 10:37:03

+0

剛剛用ctags 2.7和最新的電梯RC 2.0試了一下,效果很好。也許另一個ctags選項會隱藏到你的.ctags文件中? – richq 2010-06-15 10:44:20

0

我最近遇到了同樣的麻煩,並且我已經採用並擴展了scala的ctags提取器,這與tagbar插件的工作相當好。這是代碼:

https://github.com/luben/sctags

它比旺盛,ctags的慢,因爲它使用了scalac解析器和JVM具有明顯的啓動時間,但它給出了一個相當完整的信息。

相關問題