CLion 2024.3 の新機能

CLion 2024.3 は CLion Nova にとって新たな重要なマイルストーンです。この大幅に改善されたバージョンの新しい言語エンジンは、最もリクエストの多かったいくつかの機能が詰め込まれており、ほとんどのユースケースに対応できるようになっています。このリリースには、デバッグサーバーやネイティブの Zephyr West デバッグのサポートなど、組み込み開発向けの新機能も含まれています。最後に OpenCV 画像ビューアーとデバッガーを起動前のプロセスにアタッチできる機能を追加し、CLion 2024.3 を完成させました。

主な更新内容

CLion Nova

JetBrains のより高速な新しい言語エンジンである CLion Nova が新規ユーザーを対象にデフォルトで有効になりました。このリリースでは、最もリクエストの多かったいくつかの機能を実装し、多数の重要なバグを修正しました。最終的には既存ユーザーと新規ユーザーを含む全ユーザーを対象に CLion Nova をデフォルトのエンジンにする予定ですが、その前に本件に関するご意見を募集したいと考えています。

詳細

CLion Nova のメモリ使用量の改善

CLion Nova の多数の改善によってエンジンのメモリ使用量が軽減されており、Chromium のような大規模なプロジェクトで特にその効果が顕著です。 IDE の応答性がさらに高まり、起動が高速化しました。

詳細

OpenCV 画像ビューアー

2 次元の OpenCV 配列を含むコードをデバッグする際にその配列を個別のダイアログに画像として表示し、さまざまな編集オプションを使用できるようになりました。この新機能により、コンピュータービジョンと機械学習アプリケーションの開発をより簡単かつ便利に行えるようになります。

詳細

VCS 関連の改善

デバッグサーバー 実験的

組み込み開発とリモート開発のデバッグを構成しやすくするため、新しいデバッグサーバー構成オプションを追加しました。デバッグサーバーでは、ビルドターゲットを実行またはデバッグするデバッグプローブを選択できます。以前はデバッグプローブとビルドターゲットの組み合わせごとに別々の実行/デバッグ構成をセットアップする必要がありました。

詳細

CLion Nova

ライブテンプレート

フィードバックの募集

このリリースでは、新しい言語エンジンである CLion Nova にさまざまな言語固有の更新や UI に関する更新を含む多数の重要な機能を追加しています。また、メモリ使用量に関連するバグを含むいくつかの重要なバグも修正しました。より簡単に CLion Classic から移行できるようにするため、Advanced Settings(高度な設定)にアクセスして新しいエンジンに切り替える必要性をなくし、「ようこそ」画面と Configuration(構成)メニューに切り替えの機能を追加しました。

現在の CLion Nova は CLion Classic よりもパフォーマンスが優れていることがさらに明らかになっています。このため、新規ユーザーだけでなくすべてのユーザーに対して CLion Nova をデフォルトにする準備が整ったと考えています。

とは言うものの、すべての既存ユーザーが切り替えできる状態ではないことは理解しており、切り替えられない理由を伺いたいと思っています。これを念頭に、CLion Nova よりも CLion Classic を好む理由をお聞かせいただければ幸いです。

IDE のメインメニューから Help(ヘルプ)| Submit Feedback...(フィードバックの送信…)を選択していただくと、フィードバックをお送りいただけます。そのフィードバックをよく読み、CLion Nova の採用を妨げている可能性のある重要な問題の解決に取り組みたいと思います。

メモリ使用量の改善

メモリ使用量を減らす取り組みの一環として、CLion Nova に多数の改善を導入しました。その効果は大規模なプロジェクトにおいて特に大きく現れます。 CLion Nova 2024.2 と 2024.3 で同じ Chromium プロジェクトのメモリ使用量を比較したところ、新バージョンではメモリ使用量が IDE フロントエンドでは 51%、IDE バックエンドでは 15% 減っていることが確認されました。

この結果はユーザーにとって以下のような意味があります。

  • メモリ使用量とガベージコレクションの呼び出し頻度が減ったため、IDE の応答性が高まっている。
  • IDE の動作が高速化し、プロジェクトの変更に対してより迅速に応答できるようになっている。

呼び出し階層

関数呼び出し階層には呼び出し元と呼び出し先の階層が表示されるため、関数同士がどのように連動しているのかをより良く理解できます。

呼び出し階層を表示するには、エディターで関数を選択した後、メインメニューで Navigate(移動)| Call Hierarchy(呼び出し階層)を選択するか、⌃⌥H(macOS)または Ctrl+Alt+H(Windows/Linux)ショートカットを使用します。

他のプロジェクトとフレームワークの定義済みコードスタイル

Settings(設定)| Editor(エディター)| Code Style(コードスタイル)| C/C++ | Set from...(選択して設定...)から、LLVM、Google、Qt、GNU などの定義済みのコードスタイルを選択できるようになりました。

再帰呼び出しを示すガターアイコン

再帰呼び出しを示すアイコンをガターに追加しました。これにより、コード内にある再帰関数の使用箇所を見つけやすくなり、スタックオーバーフローなどの危険が発生しうる状況を回避しやすくなりました。このアイコンは呼び出し階層にも表示されます。

Quick Definition(クイック定義)のサポート

Quick Definition(クイック定義)ポップアップには、クラス、関数、メソッド、およびその他のプロジェクトシンボルがどこでどのように定義されているかが表示されます。このポップアップを呼び出すには、エディター内でシンボルにキャレットを置き、⌥Space(macOS)または Ctrl+Shift+|(Windows/Linux)を押してください。メインメニューの View(表示)| Quick Definition(クイック定義)からもアクセスできます。

組み込み開発

デバッグサーバー 実験的

組み込み開発とリモート開発のデバッグの構成プロセスを合理化するため、新しい Debug Servers(デバッグサーバー)構成オプションを追加しました。このオプションは、gdbserver ベースのデバッグサーバーをセットアップできる Settings(設定)| Debugger(デバッガー)内に独立したセクションとして用意されています。

まず、Settings(設定)| Advanced Settings(高度な設定)| Debugger(デバッガー)Debug Servers(デバッグサーバー)を有効化する必要があります。次に、Settings(設定)| Debugger(デバッガー)Debug Servers(デバッグサーバー)ダイアログを開くか、メインツールバーの切り替えメニューから Edit Debug Servers(デバッグサーバーの編集)を呼び出します。

これは実験的機能であるため、PlatformIO ではまだ機能しないことに注意してください。ただし、機能させるための対処法はあります。ぜひお試しになり、フィードバックをお送りください。また、クイックコールをセットアップして特定のユースケースや課題について詳しくお聞かせいただけると幸いです。

West のデバッグのサポート

このリリースでは、ネイティブに West プロジェクトをデバッグできる機能を追加することで、Zephyr West のサポートを拡張しています。これにより、IDE 内でデバッグセッションを簡単に構成して実行できるようにしています。

Zephyr West プロジェクトをインポートすると、West 実行/デバッグ構成が Run/Debug Configurations(実行/デバッグ構成)の切り替え領域に自動的に作成されます。新しい実行/デバッグ構成は、メインメニューの Run(実行)| Edit Configurations...(構成の編集...)からでも作成できます。

編集可能なペリフェラルレジスター値

GPIO ピンやタイマーなどのボードのペリフェラルをデバッグする際、Debug(デバッグ)ツールウィンドウの Peripherals(ペリフェラル)ペインでペリフェラルレジスターを編集することにより、変更の効果を即座に確認できるようになりました。

CLion Nova による MISRA C++:2023 のサポート

MISRA C++:2023 は MISRA C++ の最新エディションであり、セーフティクリティカルなシステムで C++17 を使用するためのガイドラインを提供します。 CLion の静的解析ツールセットに、MISRA C++: 2023 関連の大量のチェックが追加されました。

デバッガー

OpenCV 画像ビューアー

OpenCV を使用するコンピュータービジョンまたは ML アプリケーションをデバッグする場合に、2 次元の OpenCV 配列を画像として表示できるようになりました。その画像はデバッガーの独立したダイアログに表示され、ステップ実行時に画像を更新するなどの幅広い編集オプションや機能を使用できます。

デバッガーの Threads & Variables(スレッドと変数)ダイアログで、View as image(画像として表示)をクリックしてください。

JSON、XML、または HTML データを含む文字列の整形表示

改行文字、または JSON、XML、および HTML データを格納する文字列をデバッグする際、コードスタイルに従って整形された文字列をデバッガー内に直接表示できます。変数の横にある View(表示)を押すと、構造化データまたは生データを独立したウィンドウで表示できます。

未起動プロセスにデバッガーをアタッチする機能

未起動のローカルプロセスにデバッガーをアタッチできるようになりました。その後、ローカルプロセスが起動すると自動的にデバッガーが呼び出されます。この機能はプロジェクトの一部を C++ で記述して CLion 内で実行し、別の部分を他の言語で記述して外部環境で実行する場合などに役立ちます。

この機能を構成するには、メインメニューから Run(実行)| Attach to an Unstarted Process...(未起動プロセスにアタッチ...)を選択してください。

バンドル関連の更新

バンドルされている以下のデバッガーが更新されました。

  • GDB が 15.2 に更新されました。
  • LLDB が 19.1.3 に更新されました。

AI Assistant

JetBrains 社内でトレーニングされた C++ 用の大規模言語モデルを搭載した最新の JetBrains AI Assistant プラグインでは、CLion のクラウドコード補完がよりスマートかつ高速になっています。接尾辞の照合を改善することで、予測されるコード箇所で既存のコードを正しく補完できるようにしました。これにより、使用シナリオの範囲がさらに広がりました。

最も大きな改善の 1 つは複数行コード補完で、構文ハイライトとコード提案の段階的な承認を含む更新が行われています。

複数行コード補完は、標準のコード補完と行全体コード補完と一緒に機能します(後者はローカル LLM を使用するため、クラウドへのデータ送信は不要です)。このため、提案を確認しながら段階的に承認することができます。 macOS では ⌥→、Windows では Ctrl+→ のショートカットを使用することで、単語ごとに提案を承認することもできます。

その他の改善点

新規 C++ プロジェクトのオンボーディングヒント

CLion を使い始めたばかりの方なら、オンボーディングヒントが改善されていることに気づくことでしょう。このヒントは IDE の主な機能の使用方法を示すもので、使い始めた時点から機能の全体像を分かりやすく伝えます。このため、短期間で CLion の熟練ユーザーになることができます。

プロジェクトステータスウィジェット

プロジェクトのステータス通知をエディターの上部からステータスバーの新しいウィジェットに移動することで、集中が妨げられにくくしました。たとえば、プロジェクト内で新しい .cpp ファイルを作成すると、 アイコンが表示されます。ファイルがどのプロジェクトにも属していないという通知は、このアイコンにマウスポインターを合わせるまで表示されません。このアイコンをクリックすると、ファイルを CMake プロジェクトに追加するようにウィジェットから提案されます。提案が不要な場合はポップアップを閉じることができます。ステータスバーにはアイコンのみが残ります。

新しいターミナルの UI の更新

新しいターミナルのインターフェースによりコンパクトなデザインを導入し、パディングを減らして画面領域を最大限に活用できるようにしました。これにより、可読性を犠牲にすることなく、コマンド操作時の可視性も改善されています。

選択したテキストの出現箇所のハイライト

CLion が .c と .cpp だけでなく、任意のファイル内で選択されたテキストのすべての出現箇所をデフォルトでハイライトするようになりました。これにより、ファイル内で選択したテキストの出現箇所を追跡しやすくなっています。以前の動作を希望する場合は、Settings(設定)| Editor(エディター)| General(一般)| Appearance(外観)でこの機能を無効にできます。

新しい CMake のバージョン

バンドルの CMake が 3.30.5 に更新されました。