Bagaimana cara mendapatkan tampilan garis besar di editor teks luhur?

117

Bagaimana cara mendapatkan tampilan garis besar di editor teks luhur untuk Windows?

Minimap sangat membantu tetapi saya melewatkan garis besar tradisional (daftar yang dapat diklik dari semua fungsi dalam kode saya dalam urutan kemunculannya untuk navigasi dan orientasi cepat)

Mungkin ada plugin, addon atau sejenisnya? Akan lebih baik jika Anda dapat segera menyebutkan langkah-langkah mana yang diperlukan untuk membuatnya bekerja.

Ada duplikat pertanyaan ini di forum teks luhur.

pengguna89021
sumber
Saya menambahkan permintaan fitur untuk SublimeText 3. Jangan ragu untuk memilihnya.
Nama carl

Jawaban:

266

Tekan CTRL+ R, atau CMD+ Runtuk Mac, untuk daftar fungsi. Ini berfungsi di Sublime Text 1.3 atau di atasnya.

Cory Petosky
sumber
Kedengarannya bagus. Tapi tidak ada yang terjadi saat saya menekan ctrl-r. Saya membuka file php. Dapatkah saya menemukan perintah di menu? Apakah ini berfungsi tanpa plugin? karlthorwald
pengguna89021
6
Ctrl + r ada dalam versi beta saat ini ( sublimetext.com/beta ), tetapi tidak di 1.2
jskinner
1
Ini luar biasa dan saya benar-benar kehilangan tampilan garis besar dari Eclipse. Sejujurnya ini jauh lebih baik meskipun saya berharap ada cara untuk membuatnya hanya untuk fungsi utama dan bukan fungsi panggilan balik / sukses.
Michael BW
1
Sayangnya daftar ini tidak diurutkan. Saya rindu memiliki tampilan garis besar Eclipse dengan daftar fungsi yang diurutkan.
scorpiodawg
1
Adakah kemajuan tambahan pada tampilan garis besar nyata seperti apa yang tersedia di editor Eclipse dan Oxygen? Yang kurang dari ctrl + r adalah tidak ada indikasi apa yang telah digariskan apakah itu variabel atau fungsinya sama.
kstubs
17

Saya menggunakan flip all action. Ini akan meminimalkan semuanya ke deklarasi, saya dapat melihat semua metode / fungsi, dan kemudian memperluas yang saya minati.

Enmanuel Rivera
sumber
10
Dari menu ST 3: Edit-Kode Lipat-Lipat Semua. Pintasan Ctrl + k, 1. Ctrl-k, j untuk membatalkan
wolfstevent
16

Sebuah plugin bernama Outline tersedia di kontrol paket, coba! https://packagecontrol.io/packages/Outline

Catatan: ini tidak berfungsi dalam mode multi baris / kolom. Untuk beberapa baris / kolom, gunakan garpu ini: https://github.com/vlad-wonderkidstudio/SublimeOutline

Elian
sumber
2
Catatan: Untuk keluar dari tampilan Outline, klik tombol tutup kecil di tab Outline, lalu tekan Shift+ Alt+ 1atau buka View -> Layout -> Single. Untuk membukanya kembali, gunakan Ctrl+ Shift+ Plalu cariBrowse Mode: Outline
Gabriel Staples
8

Saya secara singkat melihat api SublimeText 3 dan view.find_by_selector(selector)tampaknya dapat mengembalikan daftar wilayah.

Jadi saya rasa plugin yang akan menampilkan garis besar / struktur file Anda adalah mungkin.

Sebuah plugin yang akan menampilkan sesuatu seperti ini:

garis besar kode

Catatan: yang nama fungsi tampilan Plugin dapat digunakan sebagai inspirasi untuk mengekstrak kelas / metode nama atau ClassHierarchy untuk mengekstrak struktur garis

Nama adalah carl
sumber
0

Jika Anda ingin dapat mencetak atau menyimpan garis besar ctr / perintah + r tidak terlalu berguna. Seseorang dapat melakukan pencarian sederhana semua pada grep berikut ^[^\n]*function[^{]+{ atau beberapa variannya agar sesuai dengan bahasa dan situasi tempat Anda bekerja.

Setelah Anda menemukan semua, Anda dapat menyalin dan menempel hasilnya ke dokumen baru dan tergantung pada jumlah fungsi tidak perlu waktu lama untuk merapikan.

Jawabannya jauh dari sempurna, terutama untuk kasus-kasus ketika komentar memiliki kata fungsi (atau padanannya) di dalamnya, tetapi menurut saya itu adalah jawaban yang membantu.

Dengan pengeditan yang sangat cepat, inilah hasil yang saya dapatkan dari apa yang saya kerjakan sekarang.

    PathMaker.prototype.start = PathMaker.prototype.initiate = function(point){};
    PathMaker.prototype.path = function(thePath){};
    PathMaker.prototype.add = function(point){};
    PathMaker.prototype.addPath = function(path){};
    PathMaker.prototype.go = function(distance, angle){};
    PathMaker.prototype.goE = function(distance, angle){};
    PathMaker.prototype.turn = function(angle, distance){};
    PathMaker.prototype.continue = function(distance, a){};
    PathMaker.prototype.curve = function(angle, radiusX, radiusY){};
    PathMaker.prototype.up = PathMaker.prototype.north = function(distance){};
    PathMaker.prototype.down = PathMaker.prototype.south = function(distance){};
    PathMaker.prototype.east = function(distance){};
    PathMaker.prototype.west = function(distance){};
    PathMaker.prototype.getAngle = function(point){};
    PathMaker.prototype.toBezierPoints = function(PathMakerPoints, toSource){};
    PathMaker.prototype.extremities = function(points){};
    PathMaker.prototype.bounds = function(path){};
    PathMaker.prototype.tangent = function(t, points){};
    PathMaker.prototype.roundErrors = function(n, acurracy){};
    PathMaker.prototype.bezierTangent = function(path, t){};
    PathMaker.prototype.splitBezier = function(points, t){};
    PathMaker.prototype.arc = function(start, end){};
    PathMaker.prototype.getKappa = function(angle, start){};
    PathMaker.prototype.circle = function(radius, start, end, x, y, reverse){};
    PathMaker.prototype.ellipse = function(radiusX, radiusY, start, end, x, y , reverse/*, anchorPoint, reverse*/ ){};
    PathMaker.prototype.rotateArc = function(path /*array*/ , angle){};
    PathMaker.prototype.rotatePoint = function(point, origin, r){};
    PathMaker.prototype.roundErrors = function(n, acurracy){};
    PathMaker.prototype.rotate = function(path /*object or array*/ , R){};
    PathMaker.prototype.moveTo = function(path /*object or array*/ , x, y){};
    PathMaker.prototype.scale = function(path, x, y /* number X scale i.e. 1.2 for 120% */ ){};
    PathMaker.prototype.reverse = function(path){};
    PathMaker.prototype.pathItemPath = function(pathItem, toSource){};
    PathMaker.prototype.merge = function(path){};
    PathMaker.prototype.draw = function(item, properties){};
Trevor
sumber