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

ที่ตีพิมพ์ ปล่อย นีโอวิม 0.4ทางแยกจากโปรแกรมแก้ไข Vim มุ่งเน้น ในการเพิ่มความสามารถในการขยายและความยืดหยุ่น การพัฒนาดั้งเดิมของโครงการ การแพร่กระจาย ภายใต้ใบอนุญาต Apache 2.0 และส่วนฐานภายใต้ใบอนุญาต Vim

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

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

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

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

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

  • เพิ่มฟังก์ชัน API ใหม่และกิจกรรมอินเทอร์เฟซผู้ใช้จำนวนมาก
  • เพิ่มไลบรารีมาตรฐานใหม่ Nvim-Lua สำหรับการพัฒนาปลั๊กอินในภาษา Lua
  • การพัฒนาโปรโตคอลอินเทอร์เฟซผู้ใช้ยังคงดำเนินต่อไป โดยอัปเดตข้อมูลบนหน้าจอในระดับบรรทัด แทนที่จะอัปเดตอักขระแต่ละตัว
  • เพิ่มการรองรับหน้าต่างลอยเต็มรูปแบบ ซึ่งสามารถวางในตำแหน่งใดก็ได้ แนบ เชื่อมโยงกับบัฟเฟอร์การแก้ไขแต่ละรายการ และจัดกลุ่มในโหมด Multigrid
  • เพิ่มตัวเลือก 'pumblend' สำหรับเมนูแบบเลื่อนลงแบบโปร่งแสง

ที่มา: opennet.ru

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