Saat ini saya sedang mengerjakan proyek JavaScript menggunakan Backbone.js dan saya bertanya-tanya bagaimana saya bisa menavigasi antar file, berdasarkan pada metode dan definisi objek.
Sebagai contoh, saya tetap referensi ke beberapa pandangan saya di obyek global App.Views
, dan saya ingin dapat menavigasi ke setiap definisi individu ( App.Views.Home
, App.Views.SomePage
, dll) jika menemukan satu. Juga, ada banyak penutupan yang digunakan untuk menghindari kebocoran namespace, dan saya ingin tahu bagaimana saya bisa secara otomatis mengikuti definisi ini.
Saya telah melihat tern
tetapi tidak banyak contoh tentang cara mengkonfigurasinya jadi saya belum bisa berbuat banyak.
Apa sajakah alat yang bagus untuk ini?
init-file
javascript
tern
caisah
sumber
sumber
tern
halaman beranda tertulis "Manual referensi harus menjadi perhentian pertama Anda untuk mencari tahu bagaimana cara menggunakan Tern. " Setidaknya mereka oO jujurJawaban:
Saya benar-benar akan merekomendasikan barang. Saya menemukannya di pertengahan magang saya (bekerja di Node.js) musim panas lalu, dan itu bekerja dengan sangat baik dengan
company-mode
danjs2-mode
.js2-mode
dengan sendirinya cukup kuat. Ia dapat menanganiM-.
lompatan yang biasa dalam suatu file sebagian besar waktu, dantern
melengkapinya dengan baik dengan lompatan antar-file / modul (khususnya dalam ekosistem node).Langkah pertama untuk menggunakan tern adalah menginstal biner. Saya pribadi menggunakan npm untuk melakukannya:
Kemudian instal di Emacs. Bagian yang relevan dari saya
init.el
adalah:Langkah terakhir adalah mengatur
.tern-project
file di direktori root proyek Anda . Untuk proyek Node.js, saya menggunakan ini sebagai titik awal:Jika Anda menggunakan
company-mode
, maka instalcompany-tern
juga sangat dianjurkan:Sebagai catatan, saya memang memiliki beberapa masalah dengan server tiga kali sekarat musim panas lalu (2014). Menjalankan yang berikut memperbaikinya secara konsisten:
Saya tidak dapat menemukan dengan tepat apa yang menyebabkannya, tetapi itu jarang terjadi sehingga tidak lebih dari gangguan.
Referensi:
.tern-project
berkassumber
app.eventBus = _({}).extend(Backbone.Events);
dan yang lain saya milikiapp.eventBus.trigger("changeURL","");
. Tetapi ketika saya lakukantern-find-definition
untuk yang terakhir saya,eventBus
saya mendapatkan Tidak ditemukan definisi . Apakah ada sesuatu yang saya lakukan salah, atau hanyatern
tidak mendukung jenis perilaku yang saya bayangkan akan mendukungnya?