Como obter uma visualização de esboço no sublime Texteditor?
-
21-09-2019 - |
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.
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:
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){};