هذا يمنع إجراءات التعليمات البرمجية من العمل على المحررين الذين يتوقعون أن يكون رقم الإصدار الذي تم إرجاعه> = لما تم إرساله إلى LS.
يرسل tsserver
نفس الإصدار مرة أخرى وتعمل إجراءات التعليمات البرمجية بشكل جيد.
https://github.com/neovim/neovim/blob/c1fbc2ddf15b2f44b615f90b2511349ab974cb83/runtime/lua/vim/lsp/util.lua#L265 -L272
هذا الرمز من neovim-lsp
يتحقق من رقم الإصدار.
سأقوم بتحرير المزيد من المعلومات عندما أجد الفروق بين svelteserver
و tsserver
بخصوص إرسال رقم الإصدار.
تحرير : هذه لا تعمل في الوقت الحالي:
Code Actions:
1. (svelte) Disable missing-declaration for this line
2. Import 'teenStyle' from module "./helpers"
ربما يحتاج هذا السطر إلى الحصول على الإصدار الصحيح https://github.com/sveltejs/language-tools/blob/eac5c7478aebe949bb4337126f38a45b46be8c10/packages/language-server/src/plugins/typescript/features/CodeActions#tsProvider.
بالنسبة لملفات Svelte ، يجب أن يكون هذا ممكنًا ، بالنسبة لملفات TS / JS ، ولكن يجب أن نتركه كما هو حاليًا لأننا ببساطة لا نعرف ما يجب تعيينه عليه نظرًا لأننا لا نحصل على إصدارات المستندات الحالية من تلك الملفات.
بالنسبة لملفات Svelte ، يجب أن يكون هذا ممكنًا ، بالنسبة لملفات TS / JS ، ولكن يجب أن نتركه كما هو حاليًا لأننا ببساطة لا نعرف ما يجب تعيينه عليه نظرًا لأننا لا نحصل على إصدارات المستندات الحالية من تلك الملفات.
هل تقصد الموقف عندما نحتاج إلى تطبيق التغييرات على ملفات js / ts الخارجية بسبب إجراء التعليمات البرمجية في مكون svelte؟
لا أستطيع التفكير في مثال الآن. : التفكير:
إنه أمر مثير للاهتمام ، لم أختبر ما سيحدث إذا استخدمت إعادة التسمية في ملف .ts
. هل سينعكس هذا التغيير في المكونات الرشيقة ...: التفكير:
Brb. :ابتسامة:
واو ... لن تفعل ذلك. لذا يبدو أنه يجب تكوين خادم اللغة svelte لملفات .ts|.js
في مشاريع svelte أيضًا؟
لا يحدث هذا ويتم تتبع ذلك في # 580
تعد عمليات إعادة التسمية في ملفات Svelte التي تؤثر على ملفات JS مثالاً على المكان الذي يقوم فيه خادم اللغة بإرجاع عمليات التحرير لملفات JS / TS.
بالنسبة لملفات Svelte ، يجب أن يكون هذا ممكنًا ، بالنسبة لملفات TS / JS ، ولكن يجب أن نتركه كما هو حاليًا لأننا ببساطة لا نعرف ما يجب تعيينه عليه نظرًا لأننا لا نحصل على إصدارات المستندات الحالية من تلك الملفات.
في المواصفات ، يكون textDocument
لـ TextDocumentEdit
هو OptionalVersionedTextDocumentIdentifier
، لذا يمكن أن يكون الإصدار null
، ويجب أن يكون null
بدلاً من ذلك من 0 إذا لم يتمكن الخادم من توفير رقم الإصدار الصحيح.