Ich arbeite derzeit an einem JavaScript-Projekt mit Backbone.js und frage mich, wie ich basierend auf Methoden- und Objektdefinitionen zwischen Dateien navigieren kann.
Zum Beispiel, halte ich Verweise auf einige meiner Ansichten in das globale Objekt App.Views
, und ich möchte jeden einzelnen Definition navigieren können ( App.Views.Home
, App.Views.SomePage
usw.) , wenn ich eine Begegnung. Außerdem werden viele Verschlüsse verwendet, um das Auslaufen von Namespaces zu vermeiden, und ich möchte wissen, wie ich diesen Definitionen automatisch folgen kann.
Ich habe gesehen, tern
aber es gibt nicht viele Beispiele für die Konfiguration, so dass ich nicht viel tun konnte.
Was sind einige gute Werkzeuge dafür?
init-file
javascript
tern
Caisah
quelle
quelle
tern
Startseite steht "Das Referenzhandbuch sollte Ihre erste Anlaufstelle sein, um herauszufinden, wie Sie Tern verwenden. "" Zumindest sind sie ehrlich oOAntworten:
Ich würde Seeschwalbe auf jeden Fall empfehlen. Ich habe es in der Mitte meines Praktikums (bei Node.js) im letzten Sommer entdeckt und es hat wunderbar mit
company-mode
und funktioniertjs2-mode
.js2-mode
an sich ist ziemlich mächtig. Es kann das üblicheM-.
Springen innerhalb einer Datei die meiste Zeit verarbeiten undtern
ergänzt es gut durch das Springen zwischen Dateien / Modulen (insbesondere im Knoten-Ökosystem).Der erste Schritt zur Verwendung von tern ist die Installation der Binärdatei. Ich persönlich habe npm verwendet, um dies zu tun:
Dann in Emacs installieren. Der relevante Abschnitt von mir
init.el
ist:Der letzte Schritt besteht darin, eine
.tern-project
Datei im Stammverzeichnis Ihres Projekts einzurichten . Für Node.js-Projekte verwende ich dies als Ausgangspunkt:Wenn Sie verwenden
company-mode
, wird die Installationcompany-tern
ebenfalls dringend empfohlen:Als Hinweis hatte ich einige Probleme mit dem Seeschwalbenserver, der im vergangenen Sommer (2014) gelegentlich starb. Das Ausführen der folgenden Fehler wurde konsistent behoben:
Ich konnte nicht genau herausfinden, was es verursachte, aber es passierte selten genug, um kaum mehr als ein Ärgernis zu sein.
Verweise:
.tern-project
Dateiquelle
app.eventBus = _({}).extend(Backbone.Events);
und in einer anderen, die ich habeapp.eventBus.trigger("changeURL","");
. Aber wenn ichtern-find-definition
für letzteres macheeventBus
, wird keine Definition gefunden . Gibt es etwas, das ich falsch mache, oder unterstützt es einfachtern
nicht das Verhalten, von dem ich mir vorstelle, dass es es unterstützen würde?