Pergunta

Como faço para obter uma visão de esboço em Editor de texto sublime para Windows?

O minimap é útil, mas sinto falta de um esboço tradicional (uma lista klickable de todas as funções do meu código na ordem que elas aparecem para navegação rápida e orientação)

Talvez haja um plugin, addon ou similar? Também seria bom se você pudesse citar em breve quais etapas são necessárias para fazê -lo funcionar.

Existe um duplicado desta pergunta nos fóruns sublimes de texto.

Foi útil?

Solução

Acertar Ctrl+R, ou Cmd+R para Mac, para a lista de funções. Isso funciona no texto sublime 1.3 ou acima.

Outras dicas

Eu uso a dobra de toda a ação. Ele minimizará tudo para a declaração, posso ver todos os métodos/funções e depois expandir o que estou interessado.

Um plugin chamado Contorno está disponível no controle de pacotes, tente!https://packageControl.io/packages/outline

Nota: Ele não funciona no modo de várias linhas/colunas. Para várias linhas/colunas, trabalhe, use este garfo:https://github.com/vlad-wonderkidstudio/sublimeoutline

Eu olho brevemente para Sublimetext 3 API e view.find_by_selector(selector) parece ser capaz de devolver uma lista de regiões.

Então, acho que um plug -in que exibiria o esboço/estrutura do seu arquivo é possível.

Um plugin que exibiria algo assim:

code outline

Observação: a plugin de exibição de nome da função poderia ser usado como uma inspiração para extrair os nomes de classe/métodos ou Classhierarchy Para extrair a estrutura de contorno

Se você deseja imprimir ou salvar o esboço, o CTR / Command + R não é muito útil. Pode -se fazer um simples encontrar tudo na seguinte grep ^[^\n]*function[^{]+{ ou alguma variante Dele para se adequar ao idioma e situação em que você está trabalhando.

Depois de fazer o encontro, tudo o que você pode copiar e colar o resultado para um novo documento e, dependendo do número de funções, não deve demorar muito para arrumar.

A resposta está longe de ser perfeita, principalmente para os casos em que os comentários têm a palavra função (ou é equivalente) neles, mas acho que é uma resposta útil.

Com uma edição muito rápida, este é o resultado que tive no que estou trabalhando agora.

    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){};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top