มี Neovim 0.5 ซึ่งเป็นโปรแกรมแก้ไข Vim เวอร์ชันทันสมัย

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

ปัญหาอย่างหนึ่งของ Vim ที่กระตุ้นให้เกิดการสร้าง Neovim คือฐานโค้ดขนาดใหญ่ที่ใหญ่โต ซึ่งประกอบด้วยโค้ด C (C300) มากกว่า 89 บรรทัด มีเพียงไม่กี่คนที่เข้าใจถึงความแตกต่างทั้งหมดของโค้ดเบส Vim และการเปลี่ยนแปลงทั้งหมดจะถูกควบคุมโดยผู้ดูแลเพียงคนเดียว ซึ่งทำให้ยากต่อการบำรุงรักษาและปรับปรุงตัวแก้ไข แทนที่จะเป็นโค้ดที่สร้างไว้ใน Vim core เพื่อรองรับ GUI Neovim เสนอให้ใช้เลเยอร์สากลที่ให้คุณสร้างอินเทอร์เฟซโดยใช้ชุดเครื่องมือต่างๆ

ปลั๊กอินสำหรับ Neovim เปิดตัวเป็นกระบวนการแยกต่างหากสำหรับการโต้ตอบกับรูปแบบ MessagePack ที่ใช้ การโต้ตอบกับปลั๊กอินจะดำเนินการแบบอะซิงโครนัสโดยไม่ปิดกั้นส่วนประกอบพื้นฐานของตัวแก้ไข ในการเข้าถึงปลั๊กอิน คุณสามารถใช้ซ็อกเก็ต TCP ได้ เช่น ปลั๊กอินสามารถทำงานบนระบบภายนอกได้ ในขณะเดียวกัน Neovim ยังคงเข้ากันได้กับ Vim แบบย้อนหลัง ยังคงรองรับ Vimscript ต่อไป (มีให้ Lua เป็นทางเลือก) และรองรับการเชื่อมต่อสำหรับปลั๊กอิน Vim มาตรฐานส่วนใหญ่ คุณสมบัติขั้นสูงของ Neovim สามารถใช้ในปลั๊กอินที่สร้างโดยใช้ API เฉพาะของ Neovim

ปัจจุบันมีการเตรียมปลั๊กอินเฉพาะประมาณ 130 รายการแล้ว มีการผูกสำหรับการสร้างปลั๊กอินและการใช้งานอินเทอร์เฟซโดยใช้ภาษาการเขียนโปรแกรมต่างๆ (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) และเฟรมเวิร์ก (Qt, ncurses, Node .js, อิเลคตรอน, GTK) ตัวเลือกอินเทอร์เฟซผู้ใช้หลายอย่างกำลังได้รับการพัฒนา ส่วนเสริม GUI นั้นเหมือนกับปลั๊กอินมาก แต่ต่างจากปลั๊กอินตรงที่จะเริ่มการเรียกไปยังฟังก์ชัน Neovim ในขณะที่ปลั๊กอินถูกเรียกจากภายใน Neovim

การเปลี่ยนแปลงบางอย่างในเวอร์ชันใหม่:

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

ที่มา: opennet.ru

เพิ่มความคิดเห็น