Neovimの最初のニュースレターへようこそ。このプロジェクトは、私たち全員が愛するテキストエディターに新たな始まりをもたらすことを願っています。
私たちは尋ねました。そしてサポートは圧倒的でした。コミュニティはニュースレターを求めていました。
計画では、プロジェクトの進捗状況やその他ニュース価値のある情報を詳しく説明するために、毎月ニュースレターをリリースします。
今後のニュースレターは、毎月第一金曜日にリリースされる予定です。したがって、次回は7月4日に予定されています。
5月以前の数ヶ月間のマイルストーンをいくつか見てみましょう。
「Vimからフォークされてからどれくらい変わったのか?」と疑問に思われるかもしれません。では、Gitの統計を見てみましょう。
2014年1月31日に発生したVimの初期インポートを考慮すると、77人の貢献者によって1,010件のコミットが行われています。
これにより、git diff --stat
によると、887個のファイルが変更され、575371個の挿入(+)、500868個の削除(-)が発生しました。
gitinspectorのようなより高度なツールを使用すると、さらに興味深い統計を見ることができます。分析の完全なレポートは、このGistで確認できます。
5月が始まる前のマイルストーンをいくつか詳しく説明したので、過去1ヶ月に何が起こったかを見てみましょう。
Neovimは、コンパイル時にVimでオプションであった機能の一部をオンにしました。これにより、不要になったさまざまなifdef FEAT_*
マクロが発生しました。これらのマクロは削除されました。
Neovimが継承した暗号化コードに関する議論が起こりました。安全でない実装を提供するよりも、暗号化コードを削除する必要があると判断されました。その後、削除は迅速に処理されました。
Neovimの一部のヘッダーとの名前の衝突により、ソースコードは「nvim」名前空間に移動されました。また、nvim
が、その時点からプロジェクトの内部/技術識別子になることが決定されました。
Vimにはいくつかのログがありましたが、より優れたロギングユーティリティを作成するための努力が行われました。ユーティリティはマクロを使用し、標準のデバッグメッセージ、基本的な情報、警告メッセージ、またはエラーをログに記録できます。ロギングは、NDEBUG
またはDISABLE_LOG
が定義されているかどうかに応じてオンまたはオフにできます。
標準型がより良い選択肢となる場所で使用されるVim固有の型があります。これらの型に関する完全な情報は、このガイドラインにあります。
これまでのところ、short_u
、int_u
、およびlong_i
型が削除されました。long_u
の削除も現在進行中であり、char_u
およびlong
型も近い将来に計画されています。
割り当てに十分なメモリがない場合にmalloc
がNULL
を返すかどうかを確認するのではなく、これらのメモリ不足エラーを処理するために関数群が導入されました。
これらの関数は、これが起こった場合にエラー処理を行います。メモリ不足のチェックの削除は、多くの問題(および数ヶ月)に及び、この問題に記載されています。
メモリエラーの最後の削除はほぼ完了しました。
mch_stat()
という関数は、特定のファイル名に関する情報を含むstruct
を設定するために使用されました。structには、ファイルに関するstat
情報が含まれていました。
開発者の理解を深めるために、このコードはos/fs.c
で定義された新しい関数にリファクタリングされました。次に、mch_stat()
への既存の呼び出しは切り替えられました。
Coverity Scanは、ソースコードの静的分析を実行して、欠陥と脆弱性を探すサービスです。実行中の複数のパスを確認し、特定の条件下でのみ発生する可能性のある問題を見つけることができます。
Neovimには、TravisCIで使用される継続的インテグレーションに加えて、週に複数回実行されるCoverityチェックがあります。
リクエストを行うときにAPIチャネルIDを使用することで、さまざまなAPIイベントをリッスンおよび登録できるようになりました。
これに加えて、プラグインアーキテクチャの現在の外観を詳しく説明するために、Wikiページが作成されました。トップで警告されているように、すべての機能が実装されているわけではありませんが、詳細についてはこちらをご覧ください。
以下は、進行中またはロードマップにあるもののリストです。
system()
を使用する際のテンポラリファイルの使用を削除し、代わりにパイプを使用します。この機能の動機についていくつかの疑問がありました。その理由は、VimL言語の評価がeval.c
というファイルに格納されているためです。
このファイルには現在、19,164行のコードがあります。トランスレータを作成することにより、この評価器は不要になります。代わりに、Luaコードは、適切にテストされる新しく開発されたAPIに依存できます。
メーリングリストで進捗状況について質問されたとき、Thiagoは最初の公式リリースに必要なもののリストを詳しく説明しました。
- 再描画イベントの実装を完了する <- 今まさにこれを行っています
- 再描画イベントを使用して、busted/luaに基づく統合テスト用の新しいインフラストラクチャを実装します。
- クロスプラットフォームのGUIプログラムを作成します。
- pythonクライアント上の古いpythonプラグインの互換性レイヤー(7.4で導入されたpython機能を使用するプラグインを除く)
- windowsでコンパイル/実行できるようにします(プラットフォーム固有の多くのものがlibuvですでに実行されているため、これは難しいことではないと思います)
ボランティアがいれば、UIのデザインはあまり得意ではないため、再描画イベントの実装を完了した後、GUIプログラムの作成を委任するつもりです。
開発を支援したい場合は、こちらのBitcoinアドレスに寄付をお願いします: 1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQ
または、Neovim Bountysourceページでチームを支援してください。
経験豊富な開発者の方も、経験は浅いが学びたいと思っている方も、GitHubリポジトリにアクセスして、README、CONTRIBUTINGガイド、そしてWikiを参照して詳細をご確認ください。
お手伝いできる機会はたくさんあり、やるべきことはたくさんあります。
この最初のニュースレターに関して、フィードバックやご提案はありますか?Neovim Twitterを通じてお気軽にご連絡ください。
また、Neovimの世界で何が起こっているか最新情報を得るには、RSSフィードを購読してください。次回のニュースレターは7月の第1金曜日に発行予定です。
それではまた次回。:wq