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

Neovim 0.7.0 เปิดตัวแล้ว ซึ่งเป็นทางแยกของโปรแกรมแก้ไข Vim ที่เน้นไปที่การเพิ่มความสามารถในการขยายและความยืดหยุ่น โครงการได้ทำการปรับปรุงฐานรหัส Vim มานานกว่าเจ็ดปีซึ่งเป็นผลมาจากการเปลี่ยนแปลงที่ทำให้การบำรุงรักษารหัสง่ายขึ้น ให้วิธีการแบ่งงานระหว่างผู้ดูแลหลายคน แยกอินเทอร์เฟซออกจากส่วนฐาน (อินเทอร์เฟซสามารถ เปลี่ยนแปลงโดยไม่ต้องสัมผัสส่วนภายใน) และใช้สถาปัตยกรรมที่ขยายได้ใหม่โดยใช้ปลั๊กอิน การพัฒนาดั้งเดิมของโครงการได้รับการเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 และส่วนพื้นฐานได้รับการเผยแพร่ภายใต้ลิขสิทธิ์ Vim แอสเซมบลีสำเร็จรูปเตรียมไว้สำหรับ Linux (appimage), Windows และ macOS

ปัญหาอย่างหนึ่งของ 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

เวอร์ชันใหม่ให้การสนับสนุนเบื้องต้นสำหรับการทำงานระยะไกล ทำให้คุณสามารถรัน Neovim บนเซิร์ฟเวอร์และเชื่อมต่อจากระบบไคลเอนต์โดยใช้ ui_client แยกต่างหาก การเปลี่ยนแปลงอื่นๆ ได้แก่: การสนับสนุน Python 2 ถูกยกเลิก, อนุญาตให้ใช้ฟังก์ชัน Lua ในคีย์แมปได้, เพิ่มคำสั่งใหม่ลงใน API, ความสามารถในการใช้ภาษา Lua สำหรับการพัฒนาปลั๊กอิน และการจัดการการกำหนดค่าได้รับการขยายอย่างมีนัยสำคัญ ปรับปรุงเครื่องมือสำหรับการวินิจฉัยปัญหาในโค้ด เพิ่มการรองรับแถบสถานะส่วนกลางแล้ว ดำเนินการเพิ่มประสิทธิภาพการทำงานแล้ว ความสามารถของไคลเอนต์ LSP ในตัว (โปรโตคอลเซิร์ฟเวอร์ภาษา) ได้รับการขยาย ซึ่งสามารถใช้เพื่อถ่ายโอนตรรกะการวิเคราะห์และการเติมโค้ดให้สมบูรณ์ไปยังเซิร์ฟเวอร์ภายนอก

ที่มา: opennet.ru

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