Je travaille actuellement sur un projet JavaScript utilisant Backbone.js et je me demande comment puis-je naviguer entre les fichiers, en fonction des définitions de méthode et d'objet.
Par exemple, je garde les références à certaines de mes vues dans l'objet global App.Views
, et je voudrais être en mesure de naviguer à chaque définition individuelle ( App.Views.Home
, App.Views.SomePage
, etc.) si je rencontre un. En outre, de nombreuses fermetures sont utilisées pour éviter les fuites d'espace de noms, et je veux savoir comment puis-je suivre automatiquement ces définitions.
J'ai vu tern
mais il n'y a pas beaucoup d'exemples sur la façon de le configurer donc je n'ai pas pu faire grand chose.
Quels sont les bons outils pour cela?
init-file
javascript
tern
caisah
la source
la source
tern
page d'accueil, il est dit "Le manuel de référence devrait être votre premier arrêt pour comprendre comment utiliser Tern. " Au moins, ils sont honnêtes oORéponses:
Je recommanderais absolument la sterne. Je l'ai découvert à mi-chemin de mon stage (travaillant dans Node.js) l'été dernier, et cela a fonctionné à merveille avec
company-mode
etjs2-mode
.js2-mode
en soi est assez puissant. Il peut gérer leM-.
saut habituel dans un fichier la plupart du temps, et letern
complète bien avec le saut inter-fichier / module (en particulier dans l'écosystème de nœuds).La première étape de l'utilisation de tern est l'installation du binaire. J'ai personnellement utilisé npm pour le faire:
Installez ensuite dans Emacs. La section pertinente de mon
init.el
est:La dernière étape consiste à configurer un
.tern-project
fichier dans le répertoire racine de votre projet . Pour les projets Node.js, je l'utilise comme point de départ:Si vous utilisez
company-mode
, l'installationcompany-tern
est également fortement recommandée:Comme note, j'ai eu quelques problèmes avec le serveur sterne qui mourait occasionnellement l'été dernier (2014). L'exécution des éléments suivants l'a corrigé de manière cohérente:
Je n'étais pas en mesure de comprendre exactement ce qui en était la cause, mais cela arrivait assez rarement pour être un peu plus qu'une nuisance.
Références:
.tern-project
dossierla source
app.eventBus = _({}).extend(Backbone.Events);
et dans un autre que j'aiapp.eventBus.trigger("changeURL","");
. Mais quand je le faistern-find-definition
pour mon dernier,eventBus
je n'ai aucune définition trouvée . Y a-t-il quelque chose que je fais mal ou quitern
ne soutient tout simplement pas le type de comportement que j'imagine que cela soutiendrait?