すべての開発アクティビティは cxxd および cxxd-vim リポジトリに移動されました。最新の開発に遅れないようにするために、cxxd-vim プラグインを使用することをお勧めします。詳細については、FAQ の最初のセクションを参照してください。
コンテンツ
- 変更点
- インストール
- 使用法
- スクリーンショット
- 特徴
- クレジット
- よくある質問
変更点
- 2018 年 7 月 13 日
- コア機能は別のリポジトリに抽出されています。
- cxxd、C/C++ 言語サーバーの実装
- cxxd-vim、
cxxd
用に開発された Vim フロントエンド
Yavide
これらが依存関係として含まれており、引き続き正常に機能しますが、すべての開発活動と焦点はこれらのプロジェクトに移されるため、より多くの機能と安定性を得るには、通常の Vim 構成から直接それらを使用し始めてください。
- 2017 年 12 月 2 日
- Clang ベースのインデクサーの実装
- Clang ベースのすべての参照の検索を実装
- Clang ベースの定義への移行を実装
- Clang ベースの go-to-include の実装
- Clang-Tidy のサポートを実装しました
- JSONコンパイルデータベースのサポートを実装しました
- 実装された翻訳単位キャッシュ メカニズム
- さまざまなバグ修正とその他の小さな改善
- 2017 年 2 月 12 日
- 型控除サービスを実装しました。
- マウス カーソルをソース コードの上に置くと、基礎となる構造 (つまり、データ型、関数シグネチャなど) の詳細が表示されます。
- 2017 年 2 月 10 日
- Clang ベースの修正および診断サービスを実装しました。
- 複数のサービス内で同じ AST を共有できるようにするメカニズムを実装しました。
- たとえば、AST が構築されると、セマンティック構文の強調表示と Clang fixits サービスは同じ AST を共有できるようになります。
- これは、インデクサーやオートコンプリート エンジンなど、より重量のある Clang ベースのサービスが使用されるようになる場合に特に重要になります。
- サーバー側コードをリファクタリングして、エディター固有の統合をサービスのコア実装から分離しました。
- 2017 年 1 月 19 日
- 構文の強調表示周りの荒削りな部分をいくつか修正しました。
- オーバーロードされた関数または関数テンプレートのセットを処理するためのサポートを実装しました (CursorKind.OVERLOADED_DECL_REF 式)
- 依存型の処理 (TypeKind.DEPENDENT 式) のサポートを実装しました。
- より柔軟な AST トラバーサルを可能にする、clang.cindex の非侵入型パッチを実装しました。
- 2016 年 12 月 28 日
- Clang ベースのソース コード構文強調表示サービスを実装しました (
cd /colors/yaflandia && git pull
を実行して、必要なカラースキームの変更を取得します)
- 2016 年 7 月 1 日
- 新しい汎用クライアントサーバー (非同期) フレームワークを実装しました。これにより、あらゆる種類の操作をディスパッチして別個の非ブロッキング バックグラウンド プロセス (いわゆるサービス) で実行でき、その完了結果をサーバー (「Yavide」) に報告できます。
- 新しい非同期フレームワーク上に 4 つの新しいサービスを実装しました。
- オンザフライのソースコード構文強調表示サービス。
- オンザフライのソースコードインデックスサービス。
- Clang ベースのソース コード自動フォーマット サービス。
- プロジェクトビルダーサービス。
インストール
インストールガイドを参照してください。
使用法
「使用法」を参照してください。
スクリーンショット
実際のGIFをいくつかご覧ください。
さらに詳しく...
特徴
- C/C++ 開発用にバンドルおよび調整済み
- プロジェクト管理
- 新しいプロジェクトを作成するか、既存のコードベースを新しいワークスペースにインポートします
- プロジェクトエクスプローラー
- ツリービュー ウィジェットを使用してプロジェクトを探索する
- プロジェクトビルダー
- 環境内でビルドをトリガーし、バックグラウンドで非侵入的に実行します。
- クラスブラウザ
- 現在のユニットで定義されているシンボル (マクロ、構造体、クラス、メソッド、名前空間など) の概要を表示します。
- ソースコードの自動補完
- 完全な正確性を保証するための実際の C/C++ コンパイラ バックエンドによる支援
- ソースコードナビゲーション
- シンボルデータベースを最新の状態に保つ完全自動タグ生成システムを搭載
libclang
に基づくソース コード構文の強調表示Vim
が元々提供していたものよりも豊富な構文強調表示のサポートを提供します。
- ソースコードの自動フォーマット
- ソースコードの静的解析
- ソースコード管理クライアントの統合
- 他にも次のようなさまざまな機能があります。
- 括弧のオートコンプリート
- コンテキストを認識した通常のテキストのオートコンプリート
- 複数選択編集のサポート
- コードスニペット
- カラースキームのサポート
クレジット
これは、現在システムで使用されているサードパーティ Vim プラグインのアルファベット順のリストです。
- A (https://github.com/vim-scripts/a.vim)
- Clang_complete (https://github.com/Rip-Rip/clang_complete)
- NERDCommenter (https://github.com/scrooloose/nerdcommenter)
- NERDTree (https://github.com/scrooloose/nerdtree)
- SuperTab (https://github.com/ervandew/supertab)
- タグバー (https://github.com/majukushi/tagbar)
- UltiSnips (https://github.com/SirVer/ultissnips)
- vim-airline (https://github.com/bling/vim-airline)
- vim-autoclose (https://github.com/Townk/vim-autoclose)
- vim-fugitive (https://github.com/tpope/vim-fugitive)
- vim-gitgutter (https://github.com/airblade/vim-gitgutter)
- vim-multiple-cursors (https://github.com/terryma/vim-multiple-cursors)
- vim-pathogen (https://github.com/tpope/vim-pathogen)
よくある質問
開発の焦点が cxxd と cxxd-vim に移されたのはなぜですか?
TL;DR 1 つの大きなモノリシックYavide
リポジトリを 2 つの別個のリポジトリ ( cxxd
とcxxd-vim
) に分離したことで、よりモジュール化され、再利用可能、テスト可能で柔軟な設計が実現しました。このアプローチには他にも多くの利点があり、そのすべてをここで簡単に説明しますが、ここで重要なのは、フロントエンド ロジック (例: UI 実装) がバックエンド実装 (C/C++ 言語サーバー機能) から分離されたことです。これらの開発は両方とも個別に並行して推進できるようになりました。さらに、 cxxd-vim
本物の Vim プラグインのように動作するため、ハックなインストール スクリプトを使用する必要はなくなり、他の Vim プラグイン (Vundle など) と同じように通常のインストール方法でインストールできます。その他の詳細については、それぞれのリポジトリをご覧ください。
その他の質問
FAQを参照してください。