في 29 مارس 2026، الإفراج عن محرر النص نيوفيم الإصدار 0.12، وفي 6 أبريل تم إصدار نسخة تصحيحية العدد 0.12.1هذا أحد أكبر الإصدارات في الذاكرة الحديثة: تم حل أكثر من 340 مشكلة، وتمت إضافة مدير ملحقات مدمج، وعميل HTTP، وأمر إعادة التشغيل، وتم توسيع عميل LSP المدمج بشكل كبير، وتم إعادة تصميم نظام المراسلة بشكل تجريبي.
تغييرات غير متوافقة:
- إزالة واجهات برمجة تطبيقات vim.diagnostic المهملة؛
- Ctrl-R في وضع الإدخال الآن يعمل بشكل مشابه للإدخال;
- تم إيقاف الدعم Python 3.7 و 3.8 في الموفرين؛
- إضافة قائمة شل إزالة، إلى HTML تم نقله في pack/dist/opt/;
- مراقب الأشجار: توجيه الإزاحة! ينطبق على جميع عمليات الالتقاط، get_parser يُرجع قيمة فارغة (nil) في حالة الخطأ, تمت إزالة خيار "الكل" في Query:iter_matches.;
- LSP: textDocument/codeLens تمت إعادة صياغتها لتصبح مزود خدمات الديكور;
- واجهة المستخدم: الرسائل الخارجية غير مرتبط بشبكة الرسائل;
- دعم RFC 3986 في المسار_مع_عنوان_URL.
مدير إضافات مدمج (vim.pack):
وأضاف مدير إضافات تجريبي مدمج vim.pack. يدعم ملف القفل لإصلاح الإصدارات، تحديثات دون اتصال بالإنترنت, تحديد الإصدارات المستهدفة, مخزن الإقرار مع إمكانية التنقل بواسطة [[[/]] و إجراءات التعليمات البرمجيةتتوفر معلومات حول نظام التحكم في الإصدارات (VCS) من خلال vim.pack.getسير العمليات عرض عبر nvim_echo مع نوع=تقدم. مُدمج مع خدمة فحص الصحة.
LSP:
تلقى عميل بروتوكول خادم اللغة المدمج تحديثًا رئيسيًا:
- جديد الأمر: lsp لإدارة العملاء التفاعلية؛
- vim.lsp.enable и vim.lsp.is_enabled لإدارة خوادم LSP حسب الحاجة؛
- ميزة الإكمال التلقائي المدمجة في وضع الإدخال مع الدعم completionItem/resolve (مع خيار الإكمال = نافذة منبثقة)، مقتطفات معاينة и الألوان، يدعم CompletionItem.labelDetails;
- الاختيار التدريجي عبر textDocument/selectionRange، بما في ذلك في وضع انتظار المشغل;
- textDocument/documentColor ممكّن افتراضيًا، تمت إضافة الدعم عرض الألوان;
- دعم textDocument/documentLink, إكمال النص المضمن, textDocument/onTypeFormatting;
- كود لينس معروضة في خطوط افتراضية عن طريق مزود خدمات الديكور؛
- تحسينات على الرموز الدلالية: الرموز متعددة الأسطرالطلبات نطاق وكامل;
- دعم تشخيصات مساحة العمل, التسجيل الديناميكي، طلب التشخيص/التحديث;
- تسليط الضوء على الرمز الذي يتم تغيير اسمه، يدعم تعديلات نصية مشروحة и نطاقات التحرير المرتبطة;
- التعيينات الافتراضية الجديدة: GRT — الانتقال إلى تعريف النوع، GRX — إطلاق كودلينس؛
- عملاء مزودي خدمات اللغة يتم فصل الاتصال تلقائيًا عند تغيير نوع الملف;
- أُعلن عن كونه قديماً vim.lsp.stop_client и vim.lsp.util.stylize_markdown.
أمر إعادة التشغيل وأمر الفصل:
فريق جديد :اعادة البدء يعيد تشغيل Nvim ويعيد الاتصال بواجهة المستخدم الحالية. الدعم :detach и :restart на Windowsكلاهما يعمل على جميع المنصات.
الشبكة (vim.net):
تمت إضافة عميل HTTP مدمج vim.net.request و :edit url. خيار vim.net.request مع وسيطة outbuf يكتب استجابة الخادم مباشرة إلى المخزن المؤقت المحدد.
واجهة المستخدم والرسائل:
- ui2 — إعادة صياغة تجريبية لنظام الرسائل الفرعي وسطر الأوامر، ext_cmdline/messages لواجهة المستخدم النصية;
- مجموعات الإضاءة الخلفية الجديدة hl-StderrMsg و hl-StdoutMsg;
- يدعم nvim_echo أحداث التقدم مع نوع = تقدم؛
- شريط الحالة الافتراضي يعرض عدادات التشخيص والتقدم وحالة LSP, الوضع الوظيفي المخازن المؤقتة؛
- إطار قائمة منبثقة بامبوردر لذلك شريط التمرير.
واجهة برمجة تطبيقات Lua:
- أنواع جديدة vim.Pos و vim.Range للعمل مع المواقع والمدى، التحويل بين تنسيقات المواضع المؤشر، extmark، Vim وLSP؛
- vim.list.bisect, vim.list.unique;
- التكرار: فريد, Iter:peek و Iter:skip للمكررات غير القائمة؛
- vim.wait يعيد نتائج الاستدعاء؛
- vim.json.encode يدعم الطباعة الجميلة و ترتيب_المفاتيح;
- المعلمة السلوك كدالة for tbl_extend and tbl_deep_extend;
- وحدة جديدة vim._async.
التشخيص:
- حالة التشخيص с تنسيق مخصص и إضاءة خلفية;
- تم تفعيل الفلتر, خيار التنسيق لـ setloclist/setqflist؛
- دالة رد الاتصال عند القفز;
- الانتقال إلى المعلومات ذات الصلة من open_float؛
- تراكب التظليل التشخيص غير ضروري والتشخيص مهمل.
جليسة الأشجار:
- يتم تمكين تمييز Markdown بشكل افتراضي;
- التخصيص التدريجي مستوحى من Treesitter.
تغييرات أخرى:
- :wall ++p يقوم بإنشاء مجلدات رئيسية لكل مخزن مؤقت؛
- exrc يبحث عن ملفات التكوين في الدلائل الرئيسية с تأكيد إلزامي عبر :trust;
- يمكن لـ :source تنفيذ كتل Lua وحقن Treesitter;
- nvim_open_tabpage — واجهة برمجة التطبيقات لإنشاء علامات التبويب برمجياً؛
- nvim_set_hl مع مُعامل التحديث يقوم بتحديث سمات التمييز الفردية دون الكتابة فوق السمات الأخرى؛
- أسلوب الخطّ الغامق и رموز مخصصة في حدود النافذة؛
- دعم شريط الحالة في النوافذ العائمة;
- إعادة تسمية ملف .nvimlog إلى nvim.log;
- علامة تبويب نشطة، إضاءة خلفية في مقتطفات؛
- وقت تشغيل مدمج لـ شجرة التراجع;
- shelltemp=false افتراضياً؛
- ملف التعابير يتم تخزينها في بيانات المسار القياسي;
- تم رفع الحد الأقصى لعدد نتائج البحث إلى 999.;
- محلل تكوين SSH;
- مخرجات متزامنة في الطرفية (الوضع 2026)؛
- محطة يعرض رمز الخروج عبر النص الافتراضي.
نيوفيم 0.12.1:
الإفراج التصحيحي 6 أبريل 2026، مع 26 إصلاحًا للأخطاء وميزة جديدة واحدة — :إعادة التشغيل يعيد توصيل جميع واجهات المستخدممن بين الإصلاحات المهمة:
- :إعادة تشغيل: وراثة الخطأ القياسي (stderr) في أنظمة يونكس, معالجة صحيحة — بدون واجهة رسومية;
- LSP: كرر طلب تحديث codeLens, مقتطفات معاينة, إعادة ضبط إصدار لون المستند;
- ui2: وميض عند الدخول إلى جهاز النداء, مراجع مخزن مؤقت غير صالحة, تحديث مؤشر الانسكاب;
- جليس الأشجار: تحديد باستخدام أحرف يونيكود في نهاية العقدة;
- vim.net: معالجة عناوين URL المؤرشفة عبر ملفات tar/zip;
- vim.pack: باستخدام uv.available_parallelism لحساب عدد الخيوط؛
- تحديثات أمان Vim: تجاوز نموذج الأمان من خلال نموذج سطر الأوامر, اجتياز مسار zip.vim;
- تحسين ملف vim.pos: استخدام nvim_buf_line_count بدلاً من تحميل جميع الأسطر.
المصدر: linux.org.ru
