web-dev-qa-db-fra.com

Comment obtenir une vue d'ensemble dans un éditeur de texte sublime?

Comment obtenir une vue d'ensemble dans sublime text editor for Windows? 

La mini-carte est utile, mais je manque un aperçu traditionnel (une liste complète de toutes les fonctions de mon code dans l’ordre dans lequel elles apparaissent pour une navigation et une orientation rapides).

Peut-être il y a un plugin, addon ou similaire? Ce serait également bien si vous pouviez indiquer brièvement quelles étapes sont nécessaires pour que cela fonctionne.

Il y a un duplicata de cette question sur les forums de texte sublime.

102
user89021

Frappé CTRL+R, ou CMD+R pour Mac, pour la liste des fonctions. Cela fonctionne dans Sublime Text 1.3 ou supérieur.

252
Cory Petosky

J'utilise le fold all action. Cela réduira tout à la déclaration, je peux voir toutes les méthodes/fonctions et ensuite développer celle qui m'intéresse.

13
Enmanuel Rivera

Je regarde brièvement (SublimeText 3 api } _ et view.find_by_selector(selector) semble être en mesure de renvoyer une liste de régions.

Je suppose donc qu’un plug-in affichant le contour/la structure de votre fichier est possible.

Un plugin qui afficherait quelque chose comme ceci: 

code outline

Remarque: le plugin d'affichage du nom de la fonction pourrait être utilisé comme source d'inspiration pour extraire les noms de classe/méthodes ou ClassHierarchy pour extraire la structure hiérarchique

7
Name is carl

Un plugin nommé Outline est disponible dans le contrôle des packages, essayez-le! https://packagecontrol.io/packages/Outline } _

7
Elian

Si vous voulez pouvoir imprimer ou sauvegarder le contour, ctr/commande + r n'est pas très utile . On peut faire un simple find all sur le grep ^[^\n]*function[^{]+{ ou quelques autres variante de celle-ci en fonction de la langue et de la situation dans laquelle vous travaillez.

Une fois que vous avez trouvé tout, vous pouvez copier et coller le résultat dans un nouveau document et, en fonction du nombre de fonctions, ne devrait pas être long à ranger.

La réponse est loin d'être parfaite, en particulier dans les cas où les commentaires contiennent la fonction Word (ou son équivalent), mais je pense que c'est une réponse utile. 

Avec un montage très rapide, voici le résultat obtenu sur ce sur quoi je travaille maintenant.

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