Κυκλοφορία του Neovim 0.7.0, μια εκσυγχρονισμένη έκδοση του επεξεργαστή Vim

Κυκλοφόρησε το Neovim 0.7.0, ένα πιρούνι του επεξεργαστή Vim που επικεντρώνεται στην αύξηση της επεκτασιμότητας και της ευελιξίας. Το έργο επεξεργάζεται εκ νέου τη βάση κώδικα Vim για περισσότερα από επτά χρόνια, ως αποτέλεσμα των οποίων γίνονται αλλαγές που απλοποιούν τη συντήρηση του κώδικα, παρέχουν ένα μέσο καταμερισμού της εργασίας μεταξύ πολλών συντηρητών, διαχωρίζουν τη διεπαφή από το βασικό τμήμα (η διεπαφή μπορεί να είναι άλλαξε χωρίς να αγγίξει τα εσωτερικά) και εφαρμόστε μια νέα επεκτάσιμη αρχιτεκτονική που βασίζεται σε πρόσθετα. Οι αρχικές εξελίξεις του έργου διανέμονται με την άδεια Apache 2.0 και το βασικό μέρος διανέμεται με την άδεια Vim. Οι έτοιμες συναρμολογήσεις προετοιμάζονται για Linux (appimage), Windows και macOS.

Ένα από τα προβλήματα με το Vim που οδήγησαν στη δημιουργία του Neovim ήταν η φουσκωμένη, μονολιθική βάση κώδικα του, που αποτελείται από περισσότερες από 300 χιλιάδες γραμμές κώδικα C (C89). Μόνο λίγοι άνθρωποι κατανοούν όλες τις αποχρώσεις της βάσης κώδικα Vim και όλες οι αλλαγές ελέγχονται από έναν συντηρητή, γεγονός που καθιστά δύσκολη τη συντήρηση και τη βελτίωση του επεξεργαστή. Αντί για τον ενσωματωμένο κώδικα στον πυρήνα Vim για την υποστήριξη του 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, Electron, GTK). Πολλές επιλογές διεπαφής χρήστη αναπτύσσονται. Τα πρόσθετα GUI μοιάζουν πολύ με τα πρόσθετα, αλλά σε αντίθεση με τα πρόσθετα, ξεκινούν κλήσεις σε λειτουργίες Neovim, ενώ τα πρόσθετα καλούνται από το Neovim.

Η νέα έκδοση προσφέρει αρχική υποστήριξη για απομακρυσμένη εργασία, επιτρέποντάς σας να εκτελέσετε το Neovim στον διακομιστή και να συνδεθείτε σε αυτόν από το σύστημα πελάτη χρησιμοποιώντας ένα ξεχωριστό ui_client. Άλλες αλλαγές περιλαμβάνουν: η υποστήριξη για Python 2 έχει διακοπεί, η χρήση των λειτουργιών Lua στο keymap έχει επιτραπεί, νέες εντολές έχουν προστεθεί στο API, η δυνατότητα χρήσης της γλώσσας Lua για την ανάπτυξη πρόσθετων και η διαχείριση ρυθμίσεων έχει επεκταθεί σημαντικά, Τα εργαλεία για τη διάγνωση προβλημάτων στον κώδικα έχουν βελτιωθεί, έχει προστεθεί υποστήριξη για την καθολική γραμμή κατάστασης, έχουν πραγματοποιηθεί βελτιστοποιήσεις απόδοσης. Οι δυνατότητες του ενσωματωμένου προγράμματος-πελάτη LSP (Language Server Protocol) έχουν επεκταθεί, το οποίο μπορεί να χρησιμοποιηθεί για τη μεταφορά της λογικής ανάλυσης και της ολοκλήρωσης του κώδικα σε εξωτερικούς διακομιστές.

Πηγή: opennet.ru

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