組み込み開発
STM32CubeMX 連携
STマイクロエレクトロニクス社のボードに関する開発をしている場合、CLionが STM32CubeMX と連携したことを知ってしあわせになるでしょう。
- CLion は .ioc プロジェクトを新規作成または既存の .ioc ファイルを開くことができ、それが正しく動作するようCMakeファイルを生成します。
- CLionからSTM32CubeMXを直接起動してボード設定を更新し、コードを生成することができます。
- CLionはボード設定を選択するようリマインドし、UI内でオプションの一覧を提案してくれます。
OpenOCD サポート
Open On-Chip デバッガ を使ったデバッグが CLion でサポートされました。マイクロコントローラーをデバッグするための新しい実行/デバッグ設定テンプレートである ‘OpenOCD Download and Run’ を利用できます。
CLionでSTM32CubeMXプロジェクトを使用してい場合は、OpenOCD の実行/デバッグ設定が自動的に生成されます。
ClangFormat
ClangFormatツールはC/C++の世界で広く使われており、多くの開発者によってスタンダートとして評価されています。その設定ファイルは多くのプロジェクトで見つけることができます。特にオープンソフトウェアのソースコード内にあります。そしてそれが今、CLionでサポートされています!詳細はこちらをご覧ください。
ClangFormat はすべてのIDEアクションを横断
CLion 2019.1 は選択できるコードフォーマッターとして ClangFormat を追加しました。現在のプロジェクトまたはCLionの全プロジェクトでそれをオンに切り替えることで、以下においてCLion でコードのフォーマットを利用可能になります。
- エディタでタイプまたはコードをペースト
- Reformat Code アクションの呼び出し
- コミット前のフックとしてReformat
- ボイラープレートコードの生成
- コードのリファクタリング
- クイックフィックスまたは空気を読む機能を適用
.clang-format 設定の操作
CLionはプロジェクト内で .clang-format 設定ファイルを検出し、ClangFormat への切り替えを提案します。もし設定ファイルが複数ある場合は、ツールバーのスイッチャーから“View ClangFormat options for <ファイル名>” を選択し、エディタ内で開いた特定のファイルでどの設定ファイルが使用されているかを特定できます。
設定ファイルがなくても問題ありません – CLionはシンプルにLLVMスタイルをデフォルトにします。
命名規則
CLionで名前を設定
CLionはあなたが規定した名前のスキームを尊重します。選択した設定は以下の場合に使用されます。
- コードのオートコンプリート
- コードの生成
- コードのリファクタリング
- クイックフィックスの適用
Preferences | Editor | Code Style | C/C++ | Naming Convention で手動でスタイルを設定することもできます。または、事前設定されたスキームから名前を選択することもできます。
CLionは、エディタ内で、選択された命名規則を強制するよう助けてくれます。シンプルにInconsistent Naming inspectionを有効にするだけで、CLionは問題のある名前をハイライトし、すべての使用箇所をより正確な名前に置き換えるようクイックフィックスを提案します。
Header Guard スタイル
Preferences | Editor | Code Style | C/C++ | Naming Convention において、新しいヘッダファイルを作成した際に利用される Header Guards スタイルを設定できます。
この Velocity テンプレートを更新するか、事前設定されたスキームのうち一つからスタイルを選択することができます。
C++ サポート
Clangdによるコードのハイライトとクイックフィックス
エディタのパフォーマンスを改善するために、補完的なClangdベースの言語エンジン上のトップにコードハイライトとクイックフィックスが実装されました(エンジンと連動してデフォルトで有効になっています)。
クイックフィックスのロケーションはClangdで計算され、フィックス機能自体は CLion が提供します。
CLangによるエラーメッセージ
これまでかなりの期間、Clangdベースの言語エンジンを活用し、エディタ内のコードエラーや警告の注釈をしてきました。v2019.1では、CLion は改善され、 CLangによって強化された、より詳細なエラーメッセージを取得するようになりました。
特に実用的な例としてはC++コード内で失敗したオーバーロード解決をデバッグすることです。
改善されたリネームファクタリング
ファイルに関するリネームリファクタリングを改善しました:
- ファイルのリネームをする場合、関連するクラス/構造体もリネームしたいかどうか、またその逆かをCLionが聞くようになりました。
- ヘッダファイルがリネームされた場合、それに応じてヘッダーガードも更新されます。
改善された抽出リファクタリング
抽出リファクタリングがより正確になりました:
- 型エイリアスを尊重し、スタティックメンバーは拡張しません
std::
名前空間修飾子を尊重します- テンプレートの特殊化とテンプレートパラメータを尊重します
staticにできるメンバー関数
新しいインスペクションでは、staticとしてマークできるメンバー関数を報告します。それはClangdベースの言語エンジン上のトップで動作し、それがthis
に依存しているかどうかをチェックしようとして、メソッドの本体を分析します。
デバッガ
逆アセンブリビュー
GDBバックエンドに加えて、LLDBで逆アセンブリビューが利用可能になりました。一般的なビューも改善し、機能ごとに分割された情報が表示されるようになりました。
以前と同様に、逆アセンブリビューは、ソースコードのない関数でForce Step Into (⌥⇧F7) を使用した場合に利用可能になります。
変数をミュート
ステップの性能をより良くするため、またはごく稀に変数をウォッチする必要がある場合は、明確に変数をミュートできます。一般的なIDEごとのスイッチで変数の計算を停止し、変数ビュー内の各変数は必要に応じて適用したLoadオプションを取得します。
メモリビュー
メモリビューでは、デバッグモードでポインタの後ろのメモリをダンプします。実行にはデバッカーの変数ビューでポインタの変数を選択して⌘Enterを押下します。
ステップ実行している間にメモリビューを開いていると、CLionは、選択されたメモリ部分で起こるメモリの変更をハイライトします。
カスタムビルドと実行
カスタムビルドのターゲット
Build-system の独立した Build Targets (Preferences | Build, Execution, Deployment | Custom Build Targets) では、カスタムターゲットを追加し、ターゲットのビルド/クリーンが使われるあらゆるツールを設定できます。
最も典型的なユースケースは、プロジェクト全体のビルドに関する情報が不足しているデータベースプロジェクトのコンパイルです。
カスタム 実行/デバッグ設定
CLionからCustom Targetsを実行およびデバッグするには、Custom Build Application テンプレート (Run | Edit Configurations…) を使用し、対応する実行/デバッグ設定を作成します。
デバッガはCustom Build Targetのツールチェーン設定から取得されます。
注入された言語
他言語のコード部分で文字列リテラルを適切に扱うことができるようになりました。言語を一時的に注入するには、⌥Enter(空気を読む機能)を押下し、“Inject language or reference”を適用して適切な言語を選択してください。例えば、SQLやHTMLコード、正規表現などです。
カスタムカラーテーマ
あなたのIDEを華やかに
CLionの黒と白のテーマにあきてはいませんか?アイコンからラジオボタンと矢印まで、IDEで内で文字通り全色を微調整できます。
それぞれのテーマは、実際にはプラグインのリポジトリから直接ダウンロードできるテーマプラグインになっています。または、DevKitを使って自身のテーマプラグインを作り、JSONファイルを通してCLionの見た目を変更できます。
最近のロケーション
“Recent Locations” ポップアップ (⇧⌘E) では訪れた全てのロケーションが時系列に表示されるので、簡単に戻って見つけることができます。
ファイル名や含まれるコードスニペットによってロケーションを絞りたい場合はインスタント検索を使ってください。または、変更されたロケーションのみを表示するように切り替えてください。
その他の改善点
- CLionのプラグインをビルドするプロセスは、gradle-intellij-plugin (since version 0.4.2) によって使用されるMavenの依存関係としてCLionを公開することによって簡略化されました。詳細はこちらをご覧ください。
- バンドルされたCMake は 3.13、バンドルされたLLDBは 7.0.1に更新されました。最新のサポートされた Cygwin は現在 3.0 です。
- CLionのリモート開発モードで使うために IPv6 がサポートされました。詳細はこちらをご覧ください。
- Rust plugin は多くのアップデートがありました。補完や自動インポートでスコープ外のアイテムを提案するだけではなく、docコメントのコードスニペットへのRust言語のインジェクションサポートもします。それに加えて(DTrace や Perfのような)プロファイラツールがRust用にサポートされました。