Atualmente, estou trabalhando em um projeto JavaScript usando o Backbone.js e me pergunto como posso navegar entre arquivos, com base nas definições de método e objeto.
Por exemplo, eu manter referências a alguns dos meus pontos de vista do objeto global App.Views
, e eu gostaria de ser capaz de navegar para cada definição de indivíduo ( App.Views.Home
, App.Views.SomePage
, etc.) se eu encontrar um. Além disso, existem muitos fechamentos usados para evitar vazamento de espaço para nome, e quero saber como posso seguir automaticamente essas definições.
Eu já vi, tern
mas não há muitos exemplos de como configurá-lo, portanto não pude fazer muito.
Quais são algumas boas ferramentas para isso?
init-file
javascript
tern
caisah
fonte
fonte
tern
página inicial, ele diz "O manual de referência deve ser sua primeira parada para descobrir como usar o Tern. " Pelo menos eles são honestos oORespostas:
Eu recomendaria absolutamente tern. Eu o descobri na metade do meu estágio (trabalhando no Node.js) no último verão e funcionou maravilhosamente com
company-mode
ejs2-mode
.js2-mode
por si só é bastante poderoso. Ele pode lidar com oM-.
salto usual em um arquivo na maioria das vezes etern
complementa-o muito bem com o salto entre arquivos / módulo (especialmente no ecossistema de nós).O primeiro passo para usar o tern é instalar o binário. Eu pessoalmente usei o npm para fazer isso:
Em seguida, instale no Emacs. A seção relevante do meu
init.el
é:A etapa final é configurar um
.tern-project
arquivo no diretório raiz do seu projeto . Para projetos Node.js, eu uso isso como ponto de partida:Se você usar
company-mode
, a instalaçãocompany-tern
também é altamente recomendada:Como nota, tive alguns problemas com o servidor andorinha-do-mar que morre ocasionalmente no verão passado (2014). A execução do seguinte corrigiu-o consistentemente:
Eu não era capaz de descobrir exatamente o que estava causando isso, mas acontecia com pouca frequência para ser pouco mais que um incômodo.
Referências:
.tern-project
arquivofonte
app.eventBus = _({}).extend(Backbone.Events);
e em outro que eu tenhoapp.eventBus.trigger("changeURL","");
. Mas quando eu faço otern-find-definition
meu últimoeventBus
, recebo Nenhuma definição encontrada . Existe algo que eu faço de errado ou simplesmentetern
não está apoiando o tipo de comportamento que eu imagino que apoiaria?