Neovim 0.5, Vim ಸಂಪಾದಕದ ಆಧುನಿಕ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ

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

ನಿಯೋವಿಮ್‌ನ ರಚನೆಯನ್ನು ಪ್ರೇರೇಪಿಸಿದ ವಿಮ್‌ನೊಂದಿಗಿನ ಸಮಸ್ಯೆಗಳೆಂದರೆ ಅದರ ಉಬ್ಬಿದ, ಏಕಶಿಲೆಯ ಕೋಡ್ ಬೇಸ್, ಇದು 300 ಸಾವಿರಕ್ಕೂ ಹೆಚ್ಚು ಸಿ (ಸಿ 89) ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ಕೆಲವೇ ಜನರು Vim ಕೋಡ್‌ಬೇಸ್‌ನ ಎಲ್ಲಾ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಾರೆ ಮತ್ತು ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳನ್ನು ಒಬ್ಬ ನಿರ್ವಾಹಕರಿಂದ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ, ಇದು ಸಂಪಾದಕವನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಸುಧಾರಿಸಲು ಕಷ್ಟವಾಗುತ್ತದೆ. GUI ಅನ್ನು ಬೆಂಬಲಿಸಲು Vim ಕೋರ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಕೋಡ್‌ಗೆ ಬದಲಾಗಿ, ವಿವಿಧ ಟೂಲ್‌ಕಿಟ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಇಂಟರ್‌ಫೇಸ್‌ಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಸಾರ್ವತ್ರಿಕ ಪದರವನ್ನು ಬಳಸಿಕೊಂಡು Neovim ಪ್ರಸ್ತಾಪಿಸುತ್ತದೆ.

Neovim ಗಾಗಿ ಪ್ಲಗಿನ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಪ್ರಕ್ರಿಯೆಗಳಾಗಿ ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ, ಅದರೊಂದಿಗೆ MessagePack ಸ್ವರೂಪವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಸಂಪಾದಕರ ಮೂಲ ಘಟಕಗಳನ್ನು ನಿರ್ಬಂಧಿಸದೆಯೇ ಪ್ಲಗಿನ್‌ಗಳೊಂದಿಗಿನ ಸಂವಹನವನ್ನು ಅಸಮಕಾಲಿಕವಾಗಿ ನಡೆಸಲಾಗುತ್ತದೆ. ಪ್ಲಗಿನ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು, TCP ಸಾಕೆಟ್ ಅನ್ನು ಬಳಸಬಹುದು, ಅಂದರೆ. ಪ್ಲಗಿನ್ ಅನ್ನು ಬಾಹ್ಯ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಚಲಾಯಿಸಬಹುದು. ಅದೇ ಸಮಯದಲ್ಲಿ, ನಿಯೋವಿಮ್ ವಿಮ್‌ನೊಂದಿಗೆ ಹಿಮ್ಮುಖವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ, ವಿಮ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ (ಲುವಾವನ್ನು ಪರ್ಯಾಯವಾಗಿ ನೀಡಲಾಗುತ್ತದೆ) ಮತ್ತು ಹೆಚ್ಚಿನ ಗುಣಮಟ್ಟದ ವಿಮ್ ಪ್ಲಗಿನ್‌ಗಳಿಗೆ ಸಂಪರ್ಕಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. Neovim ನ ಸುಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು Neovim-ನಿರ್ದಿಷ್ಟ API ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ಮಿಸಲಾದ ಪ್ಲಗಿನ್‌ಗಳಲ್ಲಿ ಬಳಸಬಹುದು.

ಪ್ರಸ್ತುತ, ಸುಮಾರು 130 ನಿರ್ದಿಷ್ಟ ಪ್ಲಗಿನ್‌ಗಳನ್ನು ಈಗಾಗಲೇ ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ, ಪ್ಲಗಿನ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ಮತ್ತು ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಬೈಂಡಿಂಗ್‌ಗಳು ಲಭ್ಯವಿದೆ (Qt, ncurses, ನೋಡ್ .js, ಎಲೆಕ್ಟ್ರಾನ್, GTK). ಹಲವಾರು ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಆಯ್ಕೆಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ. GUI ಆಡ್-ಆನ್‌ಗಳು ಅನೇಕ ವಿಧಗಳಲ್ಲಿ ಪ್ಲಗಿನ್‌ಗಳಿಗೆ ಹೋಲುತ್ತವೆ, ಆದರೆ ಪ್ಲಗ್‌ಇನ್‌ಗಳಂತಲ್ಲದೆ, ಅವು Neovim ಕಾರ್ಯಗಳಿಗೆ ಕರೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತವೆ, ಆದರೆ ಪ್ಲಗಿನ್‌ಗಳನ್ನು Neovim ಒಳಗೆ ಕರೆಯಲಾಗುತ್ತದೆ.

Некоторые из изменений в новой версии:

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

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ