Как получить контурный вид в возвышенном текстедиторе? - PullRequest
110 голосов
/ 16 января 2010

Как получить представление структуры в возвышенном текстовом редакторе для Windows?

Мини-карта полезна, но я скучаю по традиционному контуру (щелкающий список всех функций в моем коде в порядке их появления для быстрой навигации и ориентации)

Может быть есть плагин, аддон или подобное? Также было бы неплохо, если бы вы вкратце назвали, какие шаги необходимы для его работы.

На форумах возвышенного текста есть дубликат этого вопроса .

Ответы [ 5 ]

252 голосов
/ 06 февраля 2010

Hit CTRL + R или CMD + R для Mac, для списка функций. Это работает в Sublime Text 1.3 или выше.

14 голосов
/ 08 мая 2013

Я использую фолд все действия. Это минимизирует все до объявления, я могу увидеть все методы / функции, а затем развернуть тот, который мне интересен.

13 голосов
/ 02 ноября 2017

Плагин с именем Outline доступен в управлении пакетами, попробуйте! https://packagecontrol.io/packages/Outline

7 голосов
/ 09 марта 2015

Я кратко смотрю на SublimeText 3 api и view.find_by_selector(selector), кажется, может вернуть список регионов.

Так что я предполагаю, что плагин, который будет отображать схему / структуру вашего файла, возможен.

Плагин, который будет отображать что-то вроде этого:

code outline

Примечание: подключаемый модуль отображения имени функции может использоваться как источник вдохновения для извлечения имен классов / методов или ClassHierarchy для извлечения структуры структуры

0 голосов
/ 28 августа 2016

Если вы хотите иметь возможность распечатать или сохранить схему, ctr / command + r не очень полезна. Можно сделать простой найти все в следующем grep ^[^\n]*function[^{]+{ или в другом варианте в соответствии с языком и ситуацией, в которой вы работаете.

После того, как вы найдете все, что вы можете скопировать и вставить результат в новый документ, и в зависимости от количества функций не займет много времени, чтобы привести в порядок.

Ответ далек от совершенства, особенно в случаях, когда в комментариях есть слово function (или его эквивалент), но я думаю, что это полезный ответ.

С очень быстрым редактированием я получил результат, над которым я сейчас работаю.

    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){};
...