Neovim 0.6.0 को रिलीज, Vim सम्पादकको आधुनिक संस्करण

Neovim 0.6.0 जारी गरिएको छ, Vim सम्पादकको फोर्क विस्तार र लचिलोपन बढाउनमा केन्द्रित छ। परियोजनाले सात वर्ष भन्दा बढीको लागि Vim कोड आधार पुन: कार्य गरिरहेको छ, जसको परिणाम स्वरूप परिवर्तनहरू बनाइन्छ जसले कोड मर्मतलाई सरल बनाउँछ, धेरै मर्मतकर्ताहरू बीच श्रम विभाजन गर्ने माध्यम प्रदान गर्दछ, इन्टरफेसलाई आधार भागबाट अलग गर्दछ (इन्टरफेस हुन सक्छ। आन्तरिकहरूलाई नछोइकन परिवर्तन गरियो) र प्लगइनहरूमा आधारित नयाँ एक्स्टेन्सिबल आर्किटेक्चर लागू गर्नुहोस्। परियोजनाको मौलिक विकासहरू Apache 2.0 लाइसेन्स अन्तर्गत वितरण गरिएको छ, र आधारभूत भाग Vim लाइसेन्स अन्तर्गत वितरित गरिएको छ। लिनक्स (appimage), विन्डोज र macOS को लागि तयार-बनाइएका सम्मेलनहरू तयार छन्।

Vim को समस्याहरू मध्ये एक जसले Neovim को सिर्जना गर्न प्रेरित गर्‍यो यसको फूलेको, मोनोलिथिक कोड आधार थियो, जसमा C (C300) कोडको 89 हजार भन्दा बढी लाइनहरू थिए। केवल केहि व्यक्तिहरूले Vim कोडबेसका सबै सूक्ष्मताहरू बुझ्दछन्, र सबै परिवर्तनहरू एक रखरखावकर्ताद्वारा नियन्त्रित हुन्छन्, जसले सम्पादकलाई कायम राख्न र सुधार गर्न गाह्रो बनाउँछ। GUI लाई समर्थन गर्न Vim कोरमा निर्मित कोडको सट्टा, Neovim ले एक विश्वव्यापी तह प्रयोग गर्ने प्रस्ताव गर्दछ जसले तपाईंलाई विभिन्न टूलकिटहरू प्रयोग गरेर इन्टरफेसहरू सिर्जना गर्न अनुमति दिन्छ।

Neovim का लागि प्लगइनहरू MessagePack ढाँचा प्रयोग गर्ने अन्तरक्रियाका लागि छुट्टै प्रक्रियाको रूपमा सुरू गरिन्छ। सम्पादकको आधारभूत कम्पोनेन्टहरू अवरुद्ध नगरीकन प्लगइनहरूसँगको अन्तरक्रिया एसिन्क्रोनस रूपमा गरिन्छ। प्लगइन पहुँच गर्न, एक TCP सकेट प्रयोग गर्न सकिन्छ, अर्थात्। प्लगइन बाह्य प्रणालीमा चलाउन सकिन्छ। उही समयमा, Neovim Vim सँग पछाडी मिल्दो रहन्छ, Vimscript समर्थन गर्न जारी राख्छ (Lua वैकल्पिक रूपमा प्रस्ताव गरिएको छ) र धेरै मानक Vim प्लगइनहरूको लागि जडानहरू समर्थन गर्दछ। Neovim को उन्नत सुविधाहरू Neovim-विशेष APIs प्रयोग गरी निर्मित प्लगइनहरूमा प्रयोग गर्न सकिन्छ।

हाल, लगभग 130 विशिष्ट प्लगइनहरू पहिले नै तयार भइसकेका छन्, प्लगइनहरू सिर्जना गर्न र विभिन्न प्रोग्रामिङ भाषाहरू (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) र फ्रेमवर्कहरू (Qt, ncurses, Node .js, Electron, GTK)। धेरै प्रयोगकर्ता इन्टरफेस विकल्पहरू विकास भइरहेको छ। GUI एड-अनहरू धेरै प्लगइनहरू जस्तै छन्, तर प्लगइनहरूको विपरीत, तिनीहरूले Neovim प्रकार्यहरूमा कलहरू सुरु गर्छन्, जबकि प्लगइनहरू Neovim भित्रबाट बोलाइन्छ।

नयाँ संस्करणमा केही परिवर्तनहरू:

  • В vim-скрипты добавлена поддержка локальных переменных, область видимости для которых ограничена только текущим скриптом.
  • Значительно улучшена поддержка языка Lua для разработки плагинов и управления конфигурацией. В vim-скриптах добавлена возможность вызова Lua-функций как методов через указание префикса v:lua (например, «arg1->v:lua.somemod.func(arg2)»).
  • Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы. Применение LSP позволяет использовать более 150 готовых обработчиков для различных языков программирования, подготовленных для редактора кода Visual Studio Code.
  • Улучшены средства диагностики проблем в коде. Добавлена возможность вывода текста диагностических сообщений и плавающих окон с кодом, связанным с подобными сообщениями. Обеспечена обработка диагностических сообщений, передаваемых LSP-сервером.
  • Добавлена поддержка виртуальных строк, которые могут использоваться, например, для вывода блоков со служебной информацией.
  • Внесены различные оптимизации производительности, например, задействована хэш таблица для подсвечиваемых имён групп.
  • Прекращена поддержка Windows 7 и 32-разрядных сборок для Windows.

स्रोत: opennet.ru

एक टिप्पणी थप्न