إطلاق محرر النصوص Neovim 0.10

تم إصدار Neovim 0.10، وهو عبارة عن شوكة لمحرر Vim تركز على زيادة القابلية للتوسعة والمرونة. لقد قام المشروع بإصلاح قاعدة كود Vim لأكثر من 10 سنوات، مما أدى إلى تغييرات تجعل الكود أسهل في الصيانة، وتوفير وسيلة لتقسيم العمل بين عدة مشرفين، وفصل الواجهة عن الجوهر (يمكن تغيير الواجهة دون لمس الأجزاء الداخلية )، وتنفيذ بنية جديدة قابلة للتوسيع تعتمد على المكونات الإضافية. يتم توزيع التطويرات الأصلية للمشروع بموجب ترخيص Apache 2.0، ويتم توزيع الجزء الأساسي بموجب ترخيص Vim. يتم إعداد التجميعات الجاهزة لنظام Linux (appimage) وWindows وmacOS.

إحدى مشكلات Vim التي دفعت إلى إنشاء Neovim هي قاعدة بيانات متضخمة ومتجانسة تتكون من أكثر من 300 سطر من كود C (C89). لا يفهم سوى عدد قليل من الأشخاص جميع الفروق الدقيقة في قاعدة كود Vim ، ويتم التحكم في جميع التغييرات بواسطة مشرف واحد ، مما يجعل من الصعب الحفاظ على المحرر والعمل على تحسينه. بدلاً من الكود المدمج في Vim core لدعم واجهة المستخدم الرسومية ، تقترح Neovim استخدام طبقة عالمية تسمح لك بإنشاء واجهات باستخدام مجموعات أدوات متنوعة.

يتم تشغيل المكونات الإضافية لـ Neovim كعمليات منفصلة للتفاعل مع تنسيق MessagePack. يتم إجراء التفاعل مع المكونات الإضافية في الوضع غير المتزامن ، دون حظر المكونات الأساسية للمحرر. يمكن استخدام مقبس TCP للوصول إلى البرنامج المساعد ، أي يمكن تشغيل المكون الإضافي على نظام خارجي. في الوقت نفسه ، تظل Neovim متوافقة مع الإصدارات السابقة مع Vim ، وتواصل دعم Vimscript (يتم تقديم Lua كبديل) وتدعم توصيل معظم ملحقات Vim العادية. يمكن استخدام الميزات المتقدمة لـ Neovim في المكونات الإضافية التي تم إنشاؤها باستخدام واجهة برمجة التطبيقات الخاصة بـ Neovim.

أثناء وجود المشروع، تم إعداد أكثر من ألف مكون إضافي محدد، وتتوفر روابط لإنشاء المكونات الإضافية وتنفيذ الواجهات باستخدام لغات البرمجة المختلفة (C++، Clojure، Perl، Python، Go، Java، Lisp، Lua، Ruby ) والأطر (Qt، ncurses، Node .js، Electron، GTK). يجري تطوير العديد من خيارات واجهة المستخدم. تشبه الوظائف الإضافية لواجهة المستخدم الرسومية المكونات الإضافية في العديد من النواحي، ولكن على عكس المكونات الإضافية، فإنها تبدأ استدعاءات لوظائف Neovim، بينما يتم استدعاء المكونات الإضافية من داخل Neovim.

من بين التغييرات في الإصدار الجديد:

  • افتراضيًا، يتم اقتراح نظام ألوان جديد يقلل السطوع، ويستخدم مجموعات ألوان أكثر توازناً، ويحل المشكلات التي تنشأ عند الأشخاص الذين يعانون من انحرافات في رؤية الألوان.
     إطلاق محرر النصوص Neovim 0.10  إطلاق محرر النصوص Neovim 0.10
  • تم تغيير روابط المفاتيح: "K" - عند تشغيل عميل LSP، يعرض معلومات حول الوظيفة والمتغير الذي يشير إليه المؤشر، "[d" و"]d" - التنقل عبر الرسائل التشخيصية، d — يعرض معلومات إضافية حول الرسالة التشخيصية.
  • وظيفة مدمجة في البرنامج المساعد vim-commentary لتأطير الأسطر والكتل البرمجية بسرعة باستخدام أحرف التعليق، مع مراعاة السياق (على سبيل المثال، لمحتويات العلامة будут использоваться символы «//», а для HTML — «»
  • تمت إضافة خيار "termsync"، الذي يتيح وضع إخراج متزامن، حيث يتم تجميع تحديثات الواجهة وعرضها في الجهاز الطرفي في جزء واحد، وذلك للتخلص من الوميض والتمزق على الشاشة.
  • يتم استخدام تسلسل الهروب "OSC 52" للكتابة إلى حافظة النظام إذا تم إنجاز العمل في جلسة SSH، ولم يتم تمكين إعداد "الحافظة"، ويوجد محاكي طرفي يدعم "OSC 52".
  • تمت إضافة دعم تجريبي لتنسيق الارتباطات التشعبية باستخدام تسلسل الهروب OSC 8 افتراضيًا، يتم استخدام هذه الميزة لتمييز الروابط في مستندات Markdown المنسقة كـ "[مثال](https://example.com)".
     إطلاق محرر النصوص Neovim 0.10
  • يتم توفير الكشف التلقائي عن الدعم الطرفي لتمثيل الألوان 24 بت ("اللون الحقيقي").
  • عند استخدام LSP (بروتوكول خادم اللغة)، يتم عرض التلميحات في مكانها، في شكل نص افتراضي، يظهر بلون مختلف مباشرة في الكود، ولكن دون إضافتها فعليًا إلى النصوص المصدر (في لقطة الشاشة، يتم عرض التلميحات في الرمادي الداكن).
     إطلاق محرر النصوص Neovim 0.10
  • تم توسيع إمكانيات فحص شجرة بناء الجملة للتعليمات البرمجية المصدر. تمت إضافة وضع تفاعلي لكتابة الاستعلامات إلى شجرة بناء الجملة، ويتم تطبيقه سريعًا على الكود الحالي.
     إطلاق محرر النصوص Neovim 0.10
  • تمت إضافة القدرة على تحديد المعدلات في أمر ":terminal"، على سبيل المثال ":botright Terminal" لفتح نافذة طرفية جديدة في الجانب الأيمن السفلي من الشاشة.

المصدر: opennet.ru

إضافة تعليق