Vim エディターの最新バージョンである Neovim 0.6.0 のリリース

Neovim 0.6.0 がリリースされました。これは、拡張性と柔軟性の向上に重点を置いた Vim エディターのフォークです。 プロジェクトは 2.0 年以上にわたって Vim コード ベースを作り直してきました。その結果、コードのメンテナンスを簡素化し、複数のメンテナー間で作業を分担する手段を提供し、インターフェースをベース部分から分離する (インターフェースは内部に手を加えずに変更)、プラグインに基づいて新しい拡張可能なアーキテクチャを実装します。 プロジェクトのオリジナルの開発部分は Apache XNUMX ライセンスに基づいて配布され、基本部分は Vim ライセンスに基づいて配布されます。 既製のアセンブリは、Linux (appimage)、Windows、macOS 用に用意されています。

Neovim の作成を促した Vim の問題の 300 つは、89 万行を超える C (CXNUMX) コードで構成される、肥大化したモノリシックなコード ベースでした。 Vim コードベースの微妙な違いをすべて理解している人はほんのわずかで、すべての変更は XNUMX 人のメンテナによって制御されているため、エディタの保守と改善が困難になっています。 Neovim は、GUI をサポートするために Vim コアに組み込まれたコードの代わりに、さまざまなツールキットを使用してインターフェイスを作成できるユニバーサル レイヤーを使用することを提案しています。

Neovim のプラグインは、MessagePack 形式が使用される相互作用のために、別個のプロセスとして起動されます。 プラグインとの対話は、エディターの基本コンポーネントをブロックすることなく、非同期的に実行されます。 プラグインにアクセスするには、TCP ソケットを使用できます。 プラグインは外部システム上で実行できます。 同時に、Neovim は Vim との下位互換性を維持し、引き続き Vimscript をサポートし (代わりに Lua が提供されます)、ほとんどの標準 Vim プラグインの接続をサポートします。 Neovim の高度な機能は、Neovim 固有の API を使用して構築されたプラグインで使用できます。

現在、約 130 個の具体的なプラグインがすでに用意されており、さまざまなプログラミング言語 (C++、Clojure、Perl、Python、Go、Java、Lisp、Lua、Ruby) やフレームワーク (Qt、 ncurses、Node .js、Electron、GTK)。 いくつかのユーザー インターフェイス オプションが開発中です。 GUI アドオンはプラグインによく似ていますが、プラグインとは異なり、プラグインは Neovim 関数の呼び出しを開始しますが、プラグインは Neovim 内から呼び出されます。

新しいバージョンの変更点の一部は次のとおりです。

  • ローカル変数のサポートが vim スクリプトに追加されました。その範囲は現在のスクリプトによってのみ制限されます。
  • プラグイン開発と構成管理のための Lua 言語サポートが大幅に改善されました。 vim スクリプトでは、v:lua プレフィックスを指定することで Lua 関数をメソッドとして呼び出す機能が追加されました (たとえば、「arg1->v:lua.somemod.func(arg2)」)。
  • 組み込み LSP クライアント (言語サーバー プロトコル) の機能が拡張され、分析ロジックとコード補完を外部サーバーに転送するために使用できるようになりました。 LSP を使用すると、Visual Studio Code エディター用に用意されたさまざまなプログラミング言語用の 150 を超える既製のハンドラーを使用できます。
  • コードの問題を診断するためのツールが改善されました。 診断メッセージのテキストと、そのようなメッセージに関連付けられたコードを含むフローティング ウィンドウを表示する機能が追加されました。 LSP サーバーによって送信された診断メッセージの処理が提供されます。
  • 仮想文字列のサポートが追加されました。これは、たとえばサービス情報を含むブロックを表示するために使用できます。
  • さまざまなパフォーマンスの最適化が行われており、たとえば、強調表示されたグループ名に対してハッシュ テーブルが有効になっています。
  • Windows 7 および Windows の 32 ビット ビルドのサポートは終了しました。

出所: オープンネット.ru

コメントを追加します