Jak uzyskać widok konspektu w wysublimowanym edytorze tekstów?

117

Jak uzyskać widok konspektu w wysublimowanym edytorze tekstu dla systemu Windows?

Minimapa jest pomocna, ale brakuje mi tradycyjnego konspektu (klikalna lista wszystkich funkcji w moim kodzie w kolejności, w jakiej się pojawiają, dla szybkiej nawigacji i orientacji)

Może jest wtyczka, dodatek lub coś podobnego? Byłoby również miło, gdybyś mógł krótko wymienić, które kroki są niezbędne, aby to zadziałało.

Na subtelnych forach tekstowych jest duplikat tego pytania .

user89021
źródło
Dodałem propozycję funkcji dla SublimeText 3. Zapraszam do głosowania na nią.
Nazywa się carl

Odpowiedzi:

266

Naciśnij CTRL+ Rlub CMD+ Rdla Maca, aby wyświetlić listę funkcji. Działa to w Sublime Text 1.3 lub nowszym.

Cory Petosky
źródło
Brzmi dobrze. Ale nic się nie dzieje, kiedy naciskam ctrl-r. Mam otwarty plik php. Czy mogę znaleźć polecenie w menu? Czy to działa bez wtyczki? karlthorwald
user89021
6
Ctrl + r istnieje w aktualnej wersji beta ( sublimetext.com/beta ), ale nie w wersji 1.2
jskinner
1
To jest niesamowite i naprawdę brakowało mi widoku zarysu z Eclipse. Szczerze mówiąc, jest to znacznie lepsze, chociaż chciałbym, aby był sposób, aby podciągał tylko główne funkcje, a nie funkcje wywołania zwrotnego / sukcesu.
Michael BW
1
Lista nie jest niestety posortowana. Brakuje mi widoku konspektu Eclipse z posortowaną listą funkcji.
scorpiodawg
1
Jakieś dodatkowe postępy w rzeczywistym widoku konspektu, takim jak to, co jest dostępne w edytorach Eclipse i Oxygen? Czego brakuje w ctrl + r, to nie ma wskazania, co zostało zarysowane, czy jest zmienną, czy podobną funkcją.
kstubs
17

Używam akcji fold all. Zminimalizuje wszystko do deklaracji, mogę zobaczyć wszystkie metody / funkcje, a następnie rozwinąć tę, która mnie interesuje.

Enmanuel Rivera
źródło
10
Z menu ST 3: Edit-Code Folding-Fold All. Skrót Ctrl + k, 1. Ctrl-k, j, aby cofnąć
wolfstevent
16

Wtyczka o nazwie Outline jest dostępna w kontroli pakietów, spróbuj! https://packagecontrol.io/packages/Outline

Uwaga: nie działa w trybie wielu wierszy / kolumn. W przypadku pracy z wieloma wierszami / kolumnami użyj tego widelca: https://github.com/vlad-wonderkidstudio/SublimeOutline

Elian
źródło
2
Uwaga: Aby wyjść z widoku konspektu, kliknij mały przycisk zamykania na karcie Konspekt, a następnie naciśnij Shift+ Alt+ 1lub przejdź do Widok -> Układ -> Pojedynczy. Aby otworzyć kopię zapasową, użyj Ctrl+ Shift+, Pa następnie wyszukajBrowse Mode: Outline
Gabriel Staples
8

Krótko patrzę na interfejs API SublimeText 3 i view.find_by_selector(selector)wydaje się, że mogę zwrócić listę regionów.

Więc myślę, że wtyczka, która wyświetlałaby zarys / strukturę twojego pliku jest możliwa.

Wtyczka, która wyświetlałaby coś takiego:

zarys kodu

Uwaga: wtyczki wyświetlacz nazwa funkcji może być wykorzystywany jako inspiracja do wyodrębnienia klasę nazw / lub ClassHierarchy wyodrębnić strukturę konspektu

Nazywam się carl
źródło
0

Jeśli chcesz mieć możliwość wydrukowania lub zapisania konspektu, ctr / command + r nie jest zbyt przydatny. Możesz zrobić proste znalezienie wszystkiego na następującym grep ^[^\n]*function[^{]+{ lub w jakimś jego wariancie , aby dopasować się do języka i sytuacji, w której pracujesz.

Po znalezieniu wszystkiego możesz skopiować i wkleić wynik do nowego dokumentu iw zależności od liczby funkcji nie powinno to zająć dużo czasu.

Odpowiedź jest daleka od doskonałości, szczególnie w przypadkach, gdy komentarze zawierają słowo function (lub jego odpowiednik), ale myślę, że jest to pomocna odpowiedź.

Dzięki bardzo szybkiej edycji jest to wynik, nad którym teraz pracuję.

    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
źródło