2008-09-15 40 views
14

我特別感興趣的是可以插入Vim的工具,允許除C/C++之外的其他語言(如Java)的CScope樣式源瀏覽(1-2個按鍵命令來定位函數定義,調用者,全局符號等)和C#(因爲Vim和Cscope已經非常適合瀏覽C/C++)。我對基於IDE的工具不感興趣,因爲我知道Microsoft和其他供應商已經在處理這個空間 - 我更喜歡使用Vim進行編輯和瀏覽,但不知道C#和/或Java的工具可以讓我與CScope相同的功能。除了Windows上的C/C++之外,其他語言是否還有CScope樣式的源瀏覽器?

這個問題的原始答案包括一個指向CSWrapper應用程序的指針,它顯然修復了一些用戶體驗Vim和CScope集成的錯誤。但是,我的Vim/CScope安裝工作正常。我只是試圖擴展功能以允許使用Vim編輯其他語言的代碼。

+0

對於python:http://stackoverflow.com/questions/3718868/using-cscope-to-browse-python-code-with-vim – idbrii 2012-07-28 17:03:42

回答

3

CScope可以用於Java。

http://cscope.sourceforge.net/cscope_vim_tutorial.html

雖然Cscope是僅適用於C代碼的使用,這是 實際上是一個非常靈活的工具,與像C++ 和Java語言的效果很好。您可以將其視爲一個通用的'grep'數據庫,其中 能夠識別某些其他結構,如函數調用 和變量定義。默認情況下,Cscope只分析當前目錄中的C,lex和yacc文件(.c,.h,.l,.y)(如果您傳遞-R標誌,則爲 子目錄),並且目前沒有辦法 要更改文件擴展名列表(是的,我們應該改變它)。 所以相反,你必須創建一個你想要解析的文件列表,並將其稱爲'cscope.files'(如果你調用'cscope -i foofile',你可以將它稱爲 )。一個簡單的(和非常靈活的)的方式來 做到這一點是通過可靠的Unix的「查找」命令:

find . -name '*.java' > cscope.files 

現在運行「cscope的-b」重建數據庫(-b只是建立在不啓動Cscope GUI的情況下數據庫爲 ),您將可以通過 瀏覽Java文件中的所有符號。顯然有 在那裏使用Cscope瀏覽和編輯大量的 文檔文件,它顯示了Cscope的解析器是多麼靈活。

5

聲稱Cscope支持Java是一個極端的延伸。它看起來像一個函數一樣處理方法,所以它不知道A.foo(),A.foo(Object)和B.foo()都是不同的。對於使用許多相同名稱的方法的大型代碼庫(包括第三方庫)來說,這是一個很大的問題。 (我沒有看過Cscope源代碼,但是這是我從Debian不穩定版本中嘗試使用最新的Cscope版本15.7a-3.3)。

我在一個大的Java項目上嘗試過Cscope,由於這個限制,對我來說都是有用的。很遺憾,我們無法快速回答諸如「誰稱這種方法」這樣的基本問題,在大型IDE之外使用免費軟件,但我們也可以接受它。 (我會喜歡它,如果我錯了,我會訴諸黑客評論的方法和重新編譯。)

3

有點晚了這裏的聚會,但我https://github.com/eapache/starscope/項目提供了一個很好爲更多語言生成cscope數據庫的框架。目前它支持Ruby和Go,並且Javascript正在進行中。添加Java/C#應該不是那麼困難。

編輯:現在完全支持Javascript。

+0

謝謝,請看看! – 2015-10-16 16:01:43

相關問題