Yüce metin düzenleyicide bir anahat görünümü nasıl elde edilir?


117

Windows için yüce metin düzenleyicide bir anahat görünümünü nasıl elde ederim ?

Mini harita yararlıdır, ancak geleneksel bir taslağı özlüyorum (kodumdaki tüm işlevlerin hızlı gezinme ve yönlendirme için göründükleri sırayla tıklanabilir bir listesi)

Belki bir eklenti, eklenti veya benzeri var mı? Çalışması için hangi adımların gerekli olduğunu kısaca adlandırırsanız da iyi olur.

Yüce metin forumlarında bu sorunun bir kopyası var .


SublimeText 3 için bir özellik isteği ekledim. Buna oy vermekten çekinmeyin.
İsim carl

Yanıtlar:


266

Hit CTRL+ Rveya CMD+ Rfonksiyon listesi için, Mac için. Bu, Sublime Text 1.3 veya üzerinde çalışır.


Kulağa iyi geliyor. Ama ctrl-r tuşlarına bastığımda hiçbir şey olmuyor. Açık bir php dosyam var. Komutu bir menüde bulabilir miyim? Bu eklenti olmadan çalışıyor mu? karlthorwald
user89021

6
Ctrl + r, mevcut beta sürümünde ( sublimetext.com/beta ) var, ancak 1.2'de değil
jskinner

1
Bu harika ve Eclipse'in ana hatlarını gerçekten kaçırıyordum. Bu gerçekten çok daha iyi olsa da, geri arama / başarı işlevlerini değil, yalnızca ana işlevleri yerine getirmesini sağlamanın bir yolu olmasını dilerdim.
Michael BW

1
Liste maalesef sıralanmamış. Eclipse'in taslak görünümünde sıralı bir işlev listesi olmasını özledim.
scorpiodawg

1
Eclipse ve Oxygen düzenleyicilerinde olduğu gibi gerçek bir taslak görünümünde ek ilerleme var mı? Ctrl + r ile eksik olan şey, bir değişken veya benzer bir işlev olup olmadığının ana hatlarıyla belirtilmiş olmamasıdır.
kstubs

17

Tüm eylemi katla kullanıyorum. Her şeyi beyana indirgeyecek, tüm yöntemleri / fonksiyonları görebilir ve ardından ilgilendiğim şeyi genişletebilirim.


10
ST 3 menüsünden: Kod Düzenleme Tümünü Katlama-Katlama. Kısayol Ctrl + k, 1. Geri almak için Ctrl-k, j
wolfstevent

16

Outline adlı bir eklenti paket kontrolünde mevcut, deneyin! https://packagecontrol.io/packages/Outline

Not: çoklu satır / sütun modunda çalışmaz. Birden fazla satır / sütun çalışması için bu çatalı kullanın: https://github.com/vlad-wonderkidstudio/SublimeOutline


2
Not: Anahat görünümünden çıkmak için Anahat sekmesindeki küçük kapat düğmesini tıklayın, ardından Shift+ Alt+ tuşlarına basın 1veya Görünüm -> Düzen -> Tek seçeneğine gidin. Yedeklemek için Ctrl+ Shift+ tuşunu kullanın ve Pardından şunu arayınBrowse Mode: Outline
Gabriel Staples

8

En kısaca göz Sublime Text 3 API ve view.find_by_selector(selector)bölgelerin listesini iade edebilir gibi görünüyor.

Bu yüzden, dosyanızın ana hatlarını / yapısını görüntüleyen bir eklentinin mümkün olduğunu tahmin ediyorum.

Şunun gibi bir şey gösterecek bir eklenti:

kod taslağı

Not: işlev adı göstergesi eklenti sınıfı / yöntem adlarını ayıklamak için bir ilham olarak kullanılabilir ya da ClassHierarchy anahat yapısını elde etmek için


0

Anahattı yazdırabilmek veya kaydedebilmek istiyorsanız, ctr / command + r çok kullanışlı değildir. Bir basit yapabileceği tüm bulmak aşağıdakilere grep ^[^\n]*function[^{]+{ ya da bazı varyant içinde çalıştığınız dil ve duruma uyum sağlamak için bunu.

Her şeyi bulduktan sonra, sonucu yeni bir belgeye kopyalayıp yapıştırabilirsiniz ve işlevlerin sayısına bağlı olarak düzeltmek uzun sürmemelidir.

Cevap mükemmel olmaktan uzaktır, özellikle yorumların içinde işlev (veya eşdeğeri) kelimesi olduğu durumlar için, ancak bunun yararlı bir cevap olduğunu düşünüyorum.

Çok hızlı bir düzenleme ile, şu anda üzerinde çalıştığım şeyin sonucu bu.

    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){};
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.