Gibt es CScope-Stil Source-Browser für andere Sprachen außer C / C ++ unter Windows?

StackOverflow https://stackoverflow.com/questions/65456

  •  09-06-2019
  •  | 
  •  

Frage

Ich bin speziell interessiert an Werkzeugen, die in Vim eingesteckt werden können CScope-Stil Quelle-Browsing (1-2 Tastendruck Befehle Funktionsdefinitionen, Anrufer zu lokalisieren, globale Symbole usw.) für Sprachen außer C / C ++ wie zu ermöglichen, Java und C # (seit Vim und Cscope bereits sehr gut für C / C ++ Browsing integrieren). Ich bin nicht daran interessiert, IDE-basierten Tools da ich weiß, Microsoft und anderen Anbietern bereits, dass der Raum adressieren - ziehe ich Vim für die Bearbeitung und das Surfen zu verwenden, aber, wissen aber nicht von Tools für C # und / oder Java, die mir geben die gleiche Leistung wie CScope.

Die ursprüngliche Antwort auf diese Frage enthalten einen Zeiger auf die CSWrapper Anwendung, die offenbar behebt einen Fehler, der einige Benutzer Integration Vim und CScope erleben. Aber meine Vim / CScope Installation funktioniert gut; Ich versuche nur, um die Funktionalität zu erweitern Vim zu ermöglichen, mithilfe von Code in anderen Sprachen bearbeiten.

War es hilfreich?

Lösung

CScope funktioniert für Java.

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

  

Obwohl Cscope ursprünglich nur für mit C-Code Gebrauch bestimmt wurde, ist es   eigentlich ein sehr flexibles Werkzeug, das gut mit Sprachen wie C ++ funktioniert   und Java. Sie können als eine generische Datenbank ‚grep‘ daran denken, mit der   Fähigkeit, bestimmte zusätzliche Konstrukte wie Funktionsaufrufe zu erkennen   und Variablendefinitionen. Standardmäßig Cscope parst nur C, lex, und   yacc-Dateien (.c, .h, .l, .y) im aktuellen Verzeichnis (und   Verzeichnisse, wenn Sie den R-Flag übergeben), und es gibt derzeit keine Möglichkeit,   dass die Liste der Dateierweiterungen ändern (ja, wir sollten das ändern).   Anstatt also müssen Sie eine Liste der Dateien, die Sie wollen   analysieren, und nennen es ‚cscope.files‘ (Sie können es nennen, was Sie wollen   wenn Sie rufen 'cscope -i foofile'). Eine einfache (und sehr flexibel) Art und Weise zu   dies tut, ist über den bewährten Unix ‚find‘ Befehl:

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

Jetzt ‚cscope -b‘ ausführen, um die Datenbank neu zu erstellen (die -b nur baut die   Datenbank, ohne die Cscope GUI) zu starten, und Sie werden in der Lage sein   durchsuchen alle Symbole in Ihre Java-Dateien. Offenbar gibt es Leute   da draußen Cscope mit durchsuchen und bearbeiten große Mengen an   Dokumentationsdateien, die zeigt, wie flexibel Cscope des Parsers ist.

Andere Tipps

Die Behauptung, dass Cscope unterstützt Java eine extreme Dehnung ist. Es scheint, ein Verfahren wie eine Funktion zu behandeln, so hat es keine Ahnung, dass A.foo (), A.foo (Object) und B.foo () alle verschieden sind. Dies ist ein großes Problem mit einer großen Code-Basis (einschließlich Bibliotheken von Drittanbietern) mit vielen gleich genannten Methoden. (Ich habe nicht an der Cscope Quelle gesucht, aber das ist, was ich fand die letzte Cscope, Version versuchte 15.7A-3.3 von Debian unstable).

Ich habe versucht Cscope auf einem großen Java-Projekt, und es war mir nicht nützlich aufgrund dieser Einschränkung. Es ist traurig, dass wir nicht eine schnelle Antwort auf eine grundlegende Frage wie „wer ruft diese Methode“, mit freier Software außerhalb des großen IDEs bekommen können, aber wir können es auch akzeptieren. (Ich würde es lieben, wenn ich falsch. Ich Hacks greifen wie die Methode zu kommentieren und neu zu kompilieren.)

Ein bisschen spät zur Party hier, aber meine https://github.com/eapache/starscope/ Projekt bietet für die Erzeugung cscope Datenbanken für mehr Sprachen einen schönen Rahmen. Derzeit unterstützt es Ruby und Go und Javascript ist in Arbeit. Java / C # Hinzufügen sollte nicht so schwierig.

Edit:. Javascript ist nun vollständig unterstützt

ich mit Andrew zustimmen -. Versuche, eine Aufrufhierarchie für eine Methode, um wieder alle Anrufe mit dem gleichen Namen, auch wenn sie von einer anderen Klasse ist

Sie können Eclim verwenden Eclipse-in VIM-Stecker

http://eclim.org/

, die Aufrufhierarchie supportrs

http://eclim.org/vim/java/inspection.html# Call-Hierarchie

Dies kann sein, was Sie suchen:

http://www.vim.org/scripts/script.php ? script_id = 1783

Sie können auch mit den verschiedenen Geschmacksrichtungen von einige CScope Funktionalität in Ihrer eigenen .vimrc Datei imitieren Karte .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top