Το Neovim 0.4 είναι διαθέσιμο, μια εκσυγχρονισμένη έκδοση του επεξεργαστή Vim

Που δημοσιεύθηκε απελευθέρωση Neovim 0.4, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. Оригинальные наработки проекта εξάπλωση под лицензией Apache 2.0, а базовая часть под лицензией Vim.

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

Ένα από τα προβλήματα με το Vim που οδήγησαν στη δημιουργία του Neovim ήταν η φουσκωμένη, μονολιθική βάση κώδικα του, που αποτελείται από περισσότερες από 300 χιλιάδες γραμμές κώδικα C (C89). Μόνο λίγοι άνθρωποι κατανοούν όλες τις αποχρώσεις της βάσης κώδικα Vim και όλες οι αλλαγές ελέγχονται από έναν συντηρητή, γεγονός που καθιστά δύσκολη τη συντήρηση και τη βελτίωση του επεξεργαστή. Αντί για τον ενσωματωμένο κώδικα στον πυρήνα Vim για την υποστήριξη του 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, Electron, GTK+). Развивается несколько вариантов пользовательского интерфейса. GUI-надстройки во многом напоминают плагины, но, в отличие от плагинов, они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.

Некоторые из изменений в νέα έκδοση:

  • Добавлена большая порция новых функций API и событий интерфейса пользователя.
  • Добавлена новая стандартная библиотека Nvim-Lua для разработки плагинов на языке Lua.
  • Продолжено развитие протокола пользовательского интерфейса, выполняющего обновление информации на экране на уровне строк, а не отдельных символов.
  • Добавлена поддержка полноценных плавающих окон, которые могут размещаться в произвольном месте, прикрепляться, связываться с отдельными буферами редактирования, группироваться в режиме Multigrid.
  • Добавлена опция ‘pumblend’ для полупрозрачных выпадающих меню.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο