Décrivez la fonctionnalité
L'idée de base a été présentée à format-all-the-code
dans https://github.com/lassik/emacs-format-all-the-code/issues/47. L'hypothèse est qu'un serveur de langue a probablement une meilleure idée de la façon de formater le code que n'importe quel paramètre par défaut défini dans format-all-the-code
. La proposition, citée à partir de là, va comme ceci :
lsp-mode
n'est pas activé pour le tampon courant, retour au comportement courant.textDocument/formatting
du serveur de langue actuel (ou peut-être des serveurs, car il s'agit apparemment d'un flux de travail pris en charge). S'il n'est pas disponible, retournez au comportement actuel.textDocument/formatting
(probablement via lsp-format-buffer
) au lieu de l'outil prédéfini.Il n'est pas clair si c'est une meilleure idée de rendre format-all-the-things
compatible LSP ou d'étendre le wrapper de formatage automatique doom-emacs
'. De toute façon, je serais heureux d'avoir la fonctionnalité.
Informations système
Désolé pour la réponse tardive; juste pour vous dire que je suis au courant de ce problème. Le module :editor format
est en retard d'une réécriture, à la fois pour le rendre compatible LSP, et éventuellement pour remplacer format-all-the-code par reformatter.el pour faciliter un backend de formatage plus personnalisable.
Je n'ai pas encore le temps de travailler dessus, mais je ne l'ai pas oublié.
De plus, @Kaali dans #2516 a go-mode
à +format-on-save-enabled-modes
(qui est une liste niée, par défaut, car son premier élément est not
), puis ajoutez lsp-format-buffer
au crochet local avant-sauvegarde de ce mode. par exemple
(add-to-list '+format-on-save-enabled-modes 'go-mode t)
(add-hook! 'go-mode-hook
(add-hook 'before-save-hook #'lsp-format-buffer nil 'local)
(add-hook 'before-save-hook #'lsp-organize-imports nil 'local))
@hlissner Merci pour le retour ! Avant de remplacer format-all-the-code
, vous pourriez être intéressé par les développements récents , qui introduisent des formateurs configurables globaux et locaux au tampon. Sinon : ne vous en faites pas, je serai content si et quand ce sera fait, mais je suis aussi assez content de Doom en ce moment même sans :)
À partir de 7472cff, nos commandes de format prennent en charge LSP (si le serveur en cours d'exécution prend en charge le formatage).
Cela peut être désactivé globalement avec
(setq +format-with-lsp nil)
Ou par mode avec
(setq-hook! 'python-mode-hook +format-with-lsp nil)
Dans tous les cas, je considérerai cela comme résolu. Merci de l'avoir porté à mon attention !
Commentaire le plus utile
Désolé pour la réponse tardive; juste pour vous dire que je suis au courant de ce problème. Le module
:editor format
est en retard d'une réécriture, à la fois pour le rendre compatible LSP, et éventuellement pour remplacer format-all-the-code par reformatter.el pour faciliter un backend de formatage plus personnalisable.Je n'ai pas encore le temps de travailler dessus, mais je ne l'ai pas oublié.
De plus, @Kaali dans #2516 a
go-mode
à+format-on-save-enabled-modes
(qui est une liste niée, par défaut, car son premier élément estnot
), puis ajoutezlsp-format-buffer
au crochet local avant-sauvegarde de ce mode. par exemple