Neovim 0.5، Vim ایڈیٹر کا جدید ورژن، دستیاب ہے۔

После почти двух лет разработки опубликован релиз Neovim 0.5, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. В рамках проекта уже более семи лет проводится переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и реализующие новую расширяемую архитектуру на основе плагинов. Оригинальные наработки проекта распространяются под лицензией Apache 2.0, а базовая часть под лицензией Vim.

Vim کے ساتھ ایک مسئلہ جس نے Neovim کی تخلیق پر اکسایا وہ اس کا پھولا ہوا، یک سنگی کوڈ بیس تھا، جو C (C300) کوڈ کی 89 ہزار سے زیادہ لائنوں پر مشتمل تھا۔ صرف چند لوگ ہی ویم کوڈبیس کی تمام باریکیوں کو سمجھتے ہیں، اور تمام تبدیلیوں کو ایک مینٹینر کے ذریعے کنٹرول کیا جاتا ہے، جس کی وجہ سے ایڈیٹر کو برقرار رکھنا اور اسے بہتر بنانا مشکل ہو جاتا ہے۔ GUI کو سپورٹ کرنے کے لیے Vim کور میں بنائے گئے کوڈ کے بجائے، Neovim ایک عالمگیر پرت استعمال کرنے کی تجویز پیش کرتا ہے جو آپ کو مختلف ٹول کٹس کا استعمال کرتے ہوئے انٹرفیس بنانے کی اجازت دیتا ہے۔

Neovim کے لیے پلگ انز کو علیحدہ عمل کے طور پر شروع کیا جاتا ہے، اس بات چیت کے لیے جس کے ساتھ MessagePack فارمیٹ استعمال کیا جاتا ہے۔ ایڈیٹر کے بنیادی اجزاء کو بلاک کیے بغیر، پلگ ان کے ساتھ تعامل متضاد طور پر کیا جاتا ہے۔ پلگ ان تک رسائی کے لیے، ایک TCP ساکٹ استعمال کیا جا سکتا ہے، یعنی پلگ ان کو بیرونی نظام پر چلایا جا سکتا ہے۔ اسی وقت، Neovim Vim کے ساتھ پیچھے کی طرف مطابقت رکھتا ہے، Vimscript کو سپورٹ کرتا رہتا ہے (Lua کو متبادل کے طور پر پیش کیا جاتا ہے) اور زیادہ تر معیاری Vim پلگ ان کے کنکشن کو سپورٹ کرتا ہے۔ Neovim کی جدید خصوصیات کو Neovim-specific APIs کا استعمال کرتے ہوئے بنائے گئے پلگ انز میں استعمال کیا جا سکتا ہے۔

فی الحال، تقریباً 130 مخصوص پلگ انز پہلے ہی تیار کیے جا چکے ہیں، مختلف پروگرامنگ زبانوں (C++، Clojure، Perl، Python، Go, Java, Lisp, Lua, Ruby) اور فریم ورکس (Qt, ncurses, Node .js, Electron, GTK)۔ یوزر انٹرفیس کے کئی آپشنز تیار کیے جا رہے ہیں۔ GUI ایڈ آنز بہت زیادہ پلگ انز کی طرح ہوتے ہیں، لیکن پلگ انز کے برعکس، وہ Neovim فنکشنز پر کال شروع کرتے ہیں، جبکہ پلگ انز کو Neovim کے اندر سے بلایا جاتا ہے۔

نئے ورژن میں کچھ تبدیلیاں:

  • Добавлен встроенный LSP-клиент (Language Server Protocol) на языке Lua, который можно использовать для подключения к внешним сервисам для анализа и автодополнения кода.
  • Добавлен API для управления оформлением буферов выделения.
  • Добавлен API для использования расширенных меток, позволяющих отслеживать изменения на уровне отдельных байтов.
  • Расширена поддержка Lua, как языка для разработки плагинов и управления конфигурацией.
  • Добавлена экспериментальная поддержка движка разбора синтаксиса tree-sitter.

ماخذ: opennet.ru

نیا تبصرہ شامل کریں