صِف الميزة
تم تقديم الفكرة الأساسية إلى format-all-the-code
في https://github.com/lassik/emacs-format-all-the-code/issues/47. الافتراض هو أن خادم اللغة ربما يكون لديه فكرة أفضل عن كيفية تنسيق الكود أكثر من أي مجموعة افتراضية في format-all-the-code
. الاقتراح ، المقتبس من هناك ، يسير على النحو التالي:
lsp-mode
للمخزن المؤقت الحالي ، فقم بالرجوع إلى السلوك الحالي.textDocument/formatting
لخادم اللغة الحالي (أو ربما الخوادم ، حيث يبدو أن هذا سير عمل مدعوم). إذا لم يكن متاحًا ، فارجع إلى السلوك الحالي.textDocument/formatting
(ربما عبر lsp-format-buffer
) بدلاً من الأداة المحددة مسبقًا.ليس من الواضح ما إذا كان من الأفضل جعل غلاف التنسيق التلقائي format-all-the-things
أو توسيع غلاف التنسيق التلقائي doom-emacs
'فكرة أفضل. في كلتا الحالتين ، سأكون سعيدًا بالحصول على الميزة.
معلومات النظام
اسف على الجواب المتاخر؛ مجرد رنين لإعلامك بأنني على علم بهذه المشكلة. لقد تأخرت إعادة كتابة الوحدة النمطية :editor format
بشكل مؤلم ، وذلك لجعلها على دراية بـ LSP ، وربما لاستبدال format-all-the-code بـ rematter.el لتسهيل عملية تنسيق خلفية أكثر قابلية للتخصيص.
ومع ذلك ، ليس لدي وقت للعمل على هذا ، لكنني لم أنس الأمر.
أيضًا ، أثارKaali في # 2516 عدم وعي LSP هذا في وضع go-mode. في الوقت الحالي ، الحل لهذا هو تعطيل المنسق الخاص بنا عن طريق إضافة 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
، قد تكون مهتمًا بالتطورات الأخيرة ، والتي تقدم منسقات قابلة للتكوين عالمية ومحلية. بخلاف ذلك: لا تهتم بي ، سأكون سعيدًا إذا ومتى انتهى ، لكنني أيضًا سعيد جدًا بـ Doom الآن حتى بدونه :)
اعتبارًا من 7472cff ، تدعم أوامر التنسيق الخاصة بنا LSP (إذا كان الخادم قيد التشغيل يدعم التنسيق).
يمكن تعطيل هذا بشكل عام مع
(setq +format-with-lsp nil)
أو على أساس كل وضع مع
(setq-hook! 'python-mode-hook +format-with-lsp nil)
على أي حال سأعتبر أن هذا قد تم حله. شكرا للفت إنتباهي!
التعليق الأكثر فائدة
اسف على الجواب المتاخر؛ مجرد رنين لإعلامك بأنني على علم بهذه المشكلة. لقد تأخرت إعادة كتابة الوحدة النمطية
:editor format
بشكل مؤلم ، وذلك لجعلها على دراية بـ LSP ، وربما لاستبدال format-all-the-code بـ rematter.el لتسهيل عملية تنسيق خلفية أكثر قابلية للتخصيص.ومع ذلك ، ليس لدي وقت للعمل على هذا ، لكنني لم أنس الأمر.
أيضًا ، أثارKaali في # 2516 عدم وعي LSP هذا في وضع go-mode. في الوقت الحالي ، الحل لهذا هو تعطيل المنسق الخاص بنا عن طريق إضافة
go-mode
إلى+format-on-save-enabled-modes
(وهي قائمة مرفوضة ، افتراضيًا ، نظرًا لأن العنصر الأول هوnot
) ، ثم أضفlsp-format-buffer
إلى الوضع المحلي قبل ربط الحفظ. على سبيل المثال