機能を説明する
基本的な考え方は、 https://github.com/lassik/emacs-format-all-the-code/issues/47でformat-all-the-code
に導入されています。 言語サーバーは、 format-all-the-code
設定されているデフォルトよりも、コードのフォーマット方法についておそらく優れたアイデアを持っていると想定されています。 そこから引用された提案は、次のようになります。
lsp-mode
が現在のバッファに対して有効になっていない場合は、現在の動作にフォールバックします。textDocument/formatting
機能を確認してください。 利用できない場合は、現在の動作にフォールバックします。textDocument/formatting
(おそらくlsp-format-buffer
経由)を使用します。format-all-the-things
LSP対応にするか、 doom-emacs
'自動フォーマットラッパーを拡張する方がよいかどうかは明らかではありません。 いずれにせよ、この機能があれば嬉しいです。
システムインフォメーション
返事が遅くなってごめん; 私がこの問題を認識していることをあなたに知らせるためにただチャイムを鳴らします。 :editor format
モジュールは、LSP対応にするためと、よりカスタマイズ可能なフォーマットバックエンドを容易にするためにformat-all-the-codeをreformatter.elに置き換えるために、書き直しが非常に遅れています。
まだこれに取り組む時間はありませんが、忘れていません。
また、#2516の@Kaaliは、goモードでこのLSP非認識を引き起こしました。 当面の回避策は、 go-mode
を+format-on-save-enabled-modes
追加してフォーマッターを無効にすることです(最初の要素がnot
であるため、デフォルトでは否定されたリストです。 lsp-format-buffer
をそのモードのローカルの保存前フックに追加します。 例えば
(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フィードバックをありがとう! format-all-the-code
を置き換える前に、グローバルおよびバッファローカルの設定可能なフォーマッタを導入する最近の開発に興味があるかもしれません。 そうでなければ:私を気にしないでください、それが終わったら私は幸せになりますが、それがなくても今はドゥームにもかなり満足しています:)
7472cffの時点で、フォーマットコマンドはLSPをサポートしています(実行中のサーバーがフォーマットをサポートしている場合)。
これはグローバルに無効にすることができます
(setq +format-with-lsp nil)
またはモードごとに
(setq-hook! 'python-mode-hook +format-with-lsp nil)
いずれにせよ、私はこれが解決したと考えます。 私の注意を引いてくれてありがとう!
最も参考になるコメント
返事が遅くなってごめん; 私がこの問題を認識していることをあなたに知らせるためにただチャイムを鳴らします。
:editor format
モジュールは、LSP対応にするためと、よりカスタマイズ可能なフォーマットバックエンドを容易にするためにformat-all-the-codeをreformatter.elに置き換えるために、書き直しが非常に遅れています。まだこれに取り組む時間はありませんが、忘れていません。
また、#2516の@Kaaliは、goモードでこのLSP非認識を引き起こしました。 当面の回避策は、
go-mode
を+format-on-save-enabled-modes
追加してフォーマッターを無効にすることです(最初の要素がnot
であるため、デフォルトでは否定されたリストです。lsp-format-buffer
をそのモードのローカルの保存前フックに追加します。 例えば