Comment casser les longues lignes automatiquement?

J'ai effectué une recherche sur les sites Google, mais je suis incapable de trouver un package emacs qui coupera automatiquement les longues lignes de manière conforme au langage (Python). Par exemple:

    def _formatDependencyList(usedList):
        if len(usedList) == 0:
            return '(This thing does not use modules)'
        return ', '.join([_escapeUnderscores(_getBaseNameHead(s)) for s in usedList])

Le s dans l'occurrence la plus à droite de usedList se trouve dans la colonne 80 de mon fichier et, une fois arrivé au bout de la ligne, j'aimerais lancer une commande, très semblable à la commande Mq / fill-paragraph , pour "réparer" cette ligne et lui donner l'aspect suivant:

        return ', '.join([
                _escapeUnderscores(_getBaseNameHead(s)) for s in usedList])

Dans ce cas particulier, le () et le [ qui suivent join sont adjacents. Par conséquent, je casse la ligne après [. (Dans le cas le plus typique, je romprais la ligne au premier caractère ( ou [.).)

Cela me semble quelque chose qu'emacs pourrait faire et probablement faire (quelque part), et cela me ferait économiser une touche entière . Honnêtement, je ne sais pas comment les gens utilisent des éditeurs qui ne peuvent pas remplir de paragraphes, et si j'avais aussi cela, je serais également incapable de continuer à vivre sans eux.

5
Il ne s’agit pas de remplir des paragraphes, mais du formatage automatique du code, un problème étonnamment difficile . Vous aurez plus de succès à trouver un programme externe faisant cela, puis à l'exécuter sur votre code.
ajouté l'auteur ICodeForCoffee, source
Pep8ify est un excellent programme pour faire cela pour Python. Par défaut, même s'il ne fait pas de longues lignes, vous devez activer le drapeau de longue ligne lorsque vous l'exécutez.
ajouté l'auteur Airsick, source

1 Réponses

Vous devriez essayer sur plusieurs lignes . Sans configuration, il vous permet de faire défiler différentes politiques d'espaces blancs en appuyant sur une seule touche.

Tout ce que je fais c'est:

(use-package multi-line :bind ("C-;" . multi-line))
1
ajouté