ニュースレター #2 - Perchance to Dream

2014年7月

次世代のテキストエディタとして皆に愛されることを夢見るプロジェクト、Neovimの月刊ニュースレター第2号へようこそ。

一般ニュース

カラースキームコンテスト

Neovimのデフォルト設定に関する議論の中で、デフォルトのカラースキームを持つというアイデアが持ち上がりました。その後、どのカラースキームを使用するかを決定するためのIssueが作成されました。

Neovimには新しいカラースキームが最適であるという結論になりました。このために、Neovimの協力者がカラースキームの投稿を可能にするコンテストを開催します。一定期間後、投稿は締め切られ、コミュニティが勝者を選ぶための新しい投票が開始されます。

勝者には賞金が贈られ、彼らのカラースキームはNeovimのディストリビューションに永遠に刻まれることになります。

投稿ガイドラインとプロセスが発表される際には、Neovim Twitterにご注目ください。

開発ニュース

Neovimのライセンスの明確化

NeovimがVimのライセンスを使用していることについて懸念が生じました。VimのライセンスはオリジナルのVimコードには引き続き適用されますが、新たに書かれたコードは明示的に扱われておらず、再ライセンスされる可能性がありました。

コミュニティはApache 2.0を使用することに合意しました。ライセンス情報はその後更新され、すべての貢献者はCLAに署名するために、このドキュメントを記入し、このWikiページに名前を追加することが求められました。

注意

これは、Apache 2.0への切り替えにコードを貢献した場合、あなたのコードは依然として古いVimライセンスの下にあることを意味します。CLAに署名しない限り、Apache 2.0の一部にはなりません。

クライアントサイドRPC

@tarrudaが、Python、Rubyなどの他のスクリプトエンジンでコードを実行できるようにするchannel_send_call関数を提供する実装を完了しました。

@tarrudaが指摘するように、コードは別のプロセスで実行され、クライアントが応答するまでブロックされ、3秒のタイムアウトがあり、コールスタックの制限は20です。

さまざまな修正と改善

@tarrudaは、過去の作業に対するさまざまな修正と改善を提案するプルリクエストを開きました。変更は、ジョブAPI、ストリームAPI、そして最後にイベントAPIを対象としていました。これらの過去の機能はすべて、先月のニュースレターで議論されました。

これらの変更には、ストリームを介して大量のデータを送信する機能、msgpack解析の失敗に対するコードの追加、イベントソースのセットにロックする機能が含まれていました。

Windowsでのコンパイル

WindowsでNeovimをビルドする機能は人気があり、数ヶ月間の目標でした。議論全体はこのIssueで確認できます。

最近の進捗は、@equalsrafMinGWでNeovimをビルドしようとする中で達成されました。

他のプラットフォームでのビルドのヘルプについては、コンパイルに関連するすべてについて、新たに作成されたWikiのBuilding Neovimページを確認してください。

可変長配列の追加

Garray.cは、エディタに「growable array」(可変長配列)を提供するVimのデータ構造です。過去に多くのプルリクエストの対象となってきました。

最新の追加@philixによるもので、配列に追加する簡単な方法を提供しています。 garrayはまだ改善中ですが、最終的にはより堅牢なソリューションに段階的に置き換えられる予定です。

VimL Libcallの修正

mch_libcall()という関数は、クリーンアップ中に一時的に削除されました。この関数は、Vimでlibcall()関数を使用して呼び出され、一部のプラグインで使用されます。

その一時的な削除と、Vimとの互換性を維持するために再追加する方法について議論が始まりました。 @aktauが解決策を提案し、その後、新しい変更を加えてプルリクエストを作成し、その後マージされました。

ファイル関数のリファクタリングの継続

先月号では、mch_stat呼び出しの変更についてお話しました。このリファクタリングは、継続して@stefan991によって、libuvuv_stat_tst_devst_inoをカプセル化する新しい構造を追加しました。

翻訳

Neovimの貢献者は世界中の国々に住んでいます。多くのネイティブスピーカーが、母国語での翻訳の更新に忙しく取り組んでいます。

すでに更新された翻訳には、ドイツ語ブラジルポルトガル語が含まれます。その他、スペイン語スウェーデン語などが進行中です。

Doxygenテーマ

@stefan991は、Doxygenテーマをカスタマイズして、Neovim.ioの外観に似せてスタイルを整えました。その後、将来のビルドのためにコードベースに追加されました

文字列処理

vim_strncpystrlcpyに置き換える試みが行われ、正常にマージされました。ただし、変更による反動が少しありました。

それに対応して、@aktauが、プロセスで協力し、今後の最適な方法について議論するためのマスターIssueを作成しました。

@philixの言葉を引用すると、彼は彼のコメントで最もよく要約しています。

文字列処理はテキストエディターで非常に重要であり、現在のコードベースには文字列処理のための適切な抽象化がありません(ゆっくりと改善されてきてはいますが)。抽象化が非常に少なく(そして多くの低レベルコード)、これほど多くのことが達成できるのは奇跡です。

今後の展開

Neovim.ioのドキュメント

Doxygenによって自動生成されたNeovimの開発ドキュメントは、neovim.ioドメインに移動される予定です。

それに加えて、Neovimのユーザードキュメントもそこに移動されています

このプロセスを支援するために、Neovimの新たに任命された常駐オートマトン(別名ボット)である@Marvimが、プロセスを自動化するように設定されます。 彼に人生について話しかけないでください

協力

寄付

開発を支援したい場合は、こちらでビットコインを使用して寄付できます: 1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQまたはNeovim Bountysourceページでチームを支援してください。

貢献

経験豊富な開発者でも、経験はないが学びたいと思っている人でも、GitHubリポジトリにアクセスして、READMECONTRIBUTINGガイド、そして最後にWikiを調べて詳細を確認してください。

協力する機会はたくさんあり、やるべきことはたくさんあります。

まとめ

この2番目のニュースレターに関してフィードバックや提案はありますか? Neovim Twitterを通じてお気軽にご連絡ください。

また、RSSフィードを購読して、Neovimの世界で何が起こっているかを常に把握してください。次のニュースレターは8月の最初の金曜日頃に公開されます。

次回まで。 :wq

ニュース

その他の更新については、ニュースアーカイブをご覧ください。 RSSフィードもあります。

Neovimとは?

Neovimは、拡張性使いやすさのために設計されたVimベースのテキストエディターであり、新しいアプリケーションと貢献を促進します。

議論

チームとチャットするには、#neovim:matrix.orgまたはirc.libera.chatの#neovimにアクセスしてください。