CLion の新機能

CLion 2020.3 では、待望されていたコード解析、アプリケーションの実行とデバッグ、およびユニットテストという開発プロセスの主な機能が大幅に改善されています。 組み込みプロジェクトにおいては、CLion に初期的な MISRA C および C++ サポートが導入されています。 また、Qt ユーザーは、Qt コードでの作業に対して特別に調整された IDE 機能を活用できます。

デバッガー

ルートとしてデバッグ

CLion 2020.3 では、ルート権限でアプリケーションを実行してデバッグできます。対応する Run/Debug 構成でこのオプションを選択するだけで可能です。 この機能は、CMake、Makefile、Gradle Native、Custom Build、および CTest アプリケーションで利用できます。

コアダンプを使ったデバッグ

コアダンプを使ったデバッグ

Linux と macOS で使用できる新しい Run | Open Core Dump… アクションを使うと、クラッシュしたプロセスの既存のコアダンプを CLion で開き、そこでデバッグすることができます。 ユーザーはデバッガーコンソールで、フレームと変数ビューの検査、メモリと逆アセンブリビューの確認、式の評価、およびデバッガコマンドの実行を行えます。 この機能の構成プロセスと既知の制限について続きをお読みください

実行ポイントの設定

実行ポイントの設定

新しい Set Execution Point to Cursor アクションを使うと、デバッグ中にプログラムの実行を前に進めたり後に戻したり、ループの中止や再開、if-else 文または switch-case 文の別のブランチの選択、およびループの完全省略が可能です。 ガターにある矢印を関心のある行にドラッグアンドドロップするだけで、簡単に操作できます。

詳細情報

インタラクティブヒントとインラインウォッチ

インタラクティブヒントとインラインウォッチ

アプリケーションがデバッグモードで実行しているときに、エディタはクリック可能なインラインヒントを表示するようになりました。このヒントをクリックして展開すると、その変数に属するすべてのフィールドを確認できます。 さらに、ドロップダウンリスト内の変数値を変更したり、コードのこの場所にインラインウォッチとして任意の式を追加することができます。

実行設定

スクリプトによる環境の構成

スクリプトによる環境の構成

CLion では、スクリプトを使用して、Run/Debug 構成が起動する環境を指定できるようになりました。 これに使用する新しい設定は、すべてのアプリケーション構成とユニットテスト構成にあります。

インデックス作成中の構成の編集

インデックス作成中の構成の編集

もう待ち続ける必要はありません! Run/Debug 構成は、プロジェクトのインデックスが作成されている間に編集できるようになりました。

ユニットテスト

CTest のサポート

CTest のサポート

CMake 固有のテストランナーである CTest が CLion でサポートされました。 つまり、CTest で実行されるテストのリストが検出されると、その Run/Debug 構成が IDE によって自動的に作成されるようになりました。 テストが起動すると、結果が組み込みのテストランナーに提示され、そこからテストをデバッグして、失敗したテストのみを返すようにするなど、行えます。

詳細情報

Google Test 向けテストランナー

Google Test 向けテストランナー

バージョン 2020.3 では、世界で最も一般的な C++ ユニットテストぐフレームワークである Google Test 向けの CLion サポートが強化されました(2020 年開発者エコシステムリサーチでは 31% の C++ 開発者が Google Test を使用していると答えました)。


    次の内容が更新されています。
  • 組み込みのテストランナーにすぐに全テストツリーが表示され、テストが実行されます。
  • パラメータ化されたテストの場合、CLion はテストツリーにテストパラメータを表示するようになりました。
  • 無効化されたテスト(名前に DISABLED プレフィクスが付いたもの)も対応するアイコンとともにテストツリーに表示されるようになりました。

コード解析とリファクタリング

MISRA

MISRA C と C++

CLion 2020.3 は、組み込み開発と特に自動車産業で広く使用されているガイドラインである MISRA C 2012MISRA C++ 2008 を部分的にサポートしています。 このサポートによって開発サイクルの早期において非対応状況を確認できるため、こういったプロジェクトの開発速度が高められます。 現在サポートされているチェックのリストは、CLion の Confuluence ページをご覧ください。

未使用の値

未使用の値

CLion 2020.3 では、Unused Value(未使用の値) インスペクションが改善されており、変数値が割り当てられた後で使用されていない状況を検出することができるだけでなく、 デフォルトの変数イニシャライザーの使用を推奨するスタイルに従うように調整できるようになりました。 そのような場合にインスペクションをオフにする新しいオプションが設定に追加されています。

ラムダパラメータの抽出

ラムダパラメータの抽出

Extract Lambda Parameter(ラムダパラメータの抽出)という新しいリファクタリングが CLion に追加されています。 このリファクタリングは、式またはステートメントを対応する引数として渡されるラムダ式とともに新しいパラメータに抽出します。 ステートメントはたとえば、並べ替え関数に渡されるコンパレータです。

抽出リファクタリングのデモを見る

コード補完

Clang 補完スニペット

Clang 補完スニペット

Clang 補完スニペットを使うと、C++ キーワードが入力される際に一般的な構文を挿入しやすくなります。 一部のケースでは、たとえば typedef キーワードを入力すると、コード補完によってキーワードだけでなく、型と新しい名前のスタブも推奨されます。

テンプレートの補完

テンプレートの補完

CLion 2020.3 ではコード補完が改善され、テンプレート型とさらに正確な動作が得られるようになりました。 たとえば、関数テンプレートでは、コンテナ要素とイテレータの補完オプションが表示されます。

Qt プロジェクト

新規 Qt プロジェクトの作成

新規 Qt プロジェクトの作成

新規プロジェクトのダイアログに、Qt Console Executable と Qt Widgets Executable プロジェクトタイプが推奨されるようになりました。 また、Qt CMake プレフィクスパス、プロジェクトで使用する C++ 言語標準、および Qt バージョンを選択することもできます。 新しいプロジェクトは、対応するテンプレートを使用して生成されます。

新規 Qt UI クラスの作成

新規 Qt UI クラスの作成

新規メニューの新しい QT UI Class 項目 (Alt+Insert) を使うと、Qt クラスと .ui ファイルを同時に作成することができます。 クラス名を入力して、親クラス(QWidgetQMainWindow、または QDialog)を選択してください。 .h/.cpp/.ui ファイルは、ファイル名として Filename ベースを使用して生成されます。 生成されるファイルは、Settings/Preferences | Editor | File and Code Templatesに記載されている Qt ClassQt Class Header、および Qt Designer Form テンプレートに従います。

シグナルとスロットの補完

シグナルとスロットの補完

シグナルとスロットは、オブジェクト間の通信に使用されるエンティティである Qt の主要機能です。 CLion では、シグナルまたはスロットを補完する必要がある場合を理解し、補完ドロップダウンの対応するメンバーのみをフィルタできるようになりました。

Qt スタイルでの自動インポート

Qt スタイルでの自動インポート

CLion 2020.3 では、Qt プロジェクトの自動インポートの推奨が調整されたため、最も一般的に使用されている Qt のスタイルに従うようになりました。

Makefile プロジェクト

libtool、dolt、および ccache を使用するプロジェクトのサポート

libtool、dolt、および ccache を使用するプロジェクトのサポート

ccachelibtooldoltslibtool、および jlibtool などの様々なラッパーを使用する Makefile プロジェクトが、CLion に正しく読み込まれるようになりました。 他のいくつかの制限について続きをお読みください

実行/デバッグ構成

実行/デバッグ構成

CLion での Makefile プロジェクトセットアップがさらに簡単になりました。プロジェクトを読み込むと、最上位の Makefile にあるターゲットに対し、Run/Debug 構成が自動的に作成されるようになっています。 構成をビルド実行可能ファイルにポイントするだけ、実行とデバッグを行うことができます。

詳細情報

単一ファイルの再コンパイル

単一ファイルの再コンパイル

Recompile アクション(Ctrl+Shift+F9)は、プロジェクト全体を構築せずに単一のファイルをコンパイルすることで開発プロセスを高速化するアクションです。 これが、Makefile プロジェクトでも動作するようになりました!

CMake

CMake プロファイルの有効化/無効化

CMake プロファイルの有効化/無効化

CLion 2020.3 では、複数の CMake プロファイルを CLion で構成しておき、現在使用していないプロファイルを無効にできるようになりました。 これにより、プロジェクトの読み込み時間が高速化され、一時的に利用できないプロファイル(現在シャットダウンしているリモート構成など)から重複して発生する失敗を省略できるようになりました。 このオプションは、CMake ツールウィンドウと CMake Profiles 設定ダイアログにあります。

詳細情報

VCS

Search Everywhere の Git タブ

Search Everywhere の Git タブ

Search Everywhere(どこでも検索)ダイアログに、Git タブが追加されました。 コミットのハッシュやメッセージ、タグ、およびブランチを検索する上で役立ちます。 また、単純な計算式を検索フィールド内で実行することもできます。

UI の更新

VCS メニューの名前が使用中のバージョン管理システムに応じてつけられるようになりました。 プロジェクトのバージョン管理に最も有益なものを除くすべてのアクションを除去し、メニューをより簡潔に表示するようにしました。

また、CommitCommit and Push… という 2 つの最も一般的に使用されるボタンが Commit 画面に明示的に表示されるようになりました。

Git ステージングのサポート

CLion から変更を直接ステージングできるようになりました。 この機能を有効にするには、 Preferences/Settings | Version Control | Git に移動して Enable staging area(ステージングエリアを有効化)チェックボックスをオンにしてください。 ファイルを Commit ビューの新しい Staged ノードに追加するには、+ アイコンをクリックします。 また、ガターや Diff ビューでも変更をステージングできます。 詳細については、ブログ記事をご覧ください。

リモート開発

除外パスの自動更新

除外パスの自動更新

リモートツールチェーンを予め構成しておけば、ローカルで Excluded としてマークされたディレクトリがリモートツールチェーンでも Excluded paths として自動的にマークされるようになりました。 また、変更が同期済みのプロジェクトに適用されると、CLion に更新通知が表示され、Excluded paths のリストを更新するように推奨されます。

詳細を読む

Code With Me

Code With Me

CLion 2020.3 は JetBrains の共同開発およびペアプログラミング用の新しいサービスである Code With Me(EAP)をサポートしています。 Code With Me を使用すると IDE で現在開いているプロジェクトを他のユーザーと共有し、リアルタイムで共同作業を行うことができます。 Code With Me はプラグインマーケットプレース(Preferences / Settings | Plugins | Marketplace)からすぐにダウンロードできます。 Code With Me の詳細については、これらの記事を参照してください。

UIの更新

ようこそ画面への更新

ようこそ画面への更新

CLion 2020.3 ではようこそ画面が一新しました。 新しいレイアウトでは、最も一般的な操作はすぐにアクセスできるように配置されているため、最近のプロジェクト、カスタマイズオプション、プラグイン設定にすぐにアクセスできます。

タブのドラッグアンドドロップ

エディタの分割表示

メインのエディタウィンドウのサイドにタブをドラッグアンドドロップすると、エディタが分割されるようになりました。 Open in Right Split アクションを使うと、ファイルを開く際に、エディタが縦に分割されます。

このアクションは、Project ビュー、または Recent FilesSearch EverywhereShift+Enter)などのナビゲーションポップアップから呼び出せます。

IDE のテーマを OS の設定に同期

IDE のテーマを OS の設定に同期

CLion を OS のテーマと同期させられるようになりました。 この機能を有効にするには、Settings / Preferences | Appearance & Behavior | Appearance に移動して Sync with OS(OS と同期)チェックボックスをオンにしてください。 お好みのテーマを選択するには、Sync with OS の隣にある歯車アイコンをクリックします。

Rustプラグインのアップデート

Rustプラグインのアップデート

IntelliJ Rust は Cargo 機能を完全サポートし、新しいスマート UI で構成できるようになりました。 ワークスペースの機能はクリック 1 つでオン・オフにでき、プラグインのコーディング支援によってこの設定が考慮されるようになります。 詳細は、こちらのブログ記事をご覧ください。

また、プラグインでは、デフォルトのコードフォーマッタとして Rustfmt を使用できるようになりました。 Settings / Preferences | Languages & Frameworks | Rust | Rustfmt で対応するチェックボックスを設定するだけで、ファイル全体の再フォーマットに Rustfmt が適用されます。 現時点では、選択に Reformat Code を呼び出すと、IDE のフォーマッタが使用されるようになっています。

プラグインのプロジェクトウィザードに、その他のテンプレートとカスタム cargo-generate テンプレートを使用するオプションが追加されて強化されています。

他には、WebAssembly プロジェクトサポートや新しい実験的な名前解決エンジンの導入といった更新があります。

CLion 2020.2 の新機能

CLion 2020.2 は Makefile プロジェクトに対応し、CMake のサポートを改善することで、さまざまな C++ プロジェクトをカバーします。 また、C++20 標準への準拠度が向上しています。 コード解析の精度が向上し、ダングリングポインターなどの致命的エラーをより多くキャッチできるようになりました。 ユニットテスト、コードカバレッジ、組み込み開発、その他の部分でも大幅な機能強化が行われました。

プロジェクトモデル

Makefile プロジェクトのサポート

Makefile ベースのプロジェクトを開発していますか? CLion の高度な機能をご利用ください。CLion が初期状態で Makefile プロジェクトをサポートするようになりました。 最上位の Makefile があるフォルダーをプロジェクトとして開くか、Open ダイアログで直接 Makefile を指定してください。 IDE は make を(実際のビルド実行を避けるために --just-print オプションを追加して)実行し、make コマンドの出力を解析し、プロジェクトをロードします。 詳細や既知の制限事項、および私たちがアプローチをテストしたさまざまなプロジェクトについてはこちらのブログ記事を参照してください。

短いツアーに参加

CMake の UX を強化

CMake の UX を強化

Build, Execution, Deployment | CMake 配下の CMake Profile 設定の UI が刷新され、設定用の有益なヒントがいくつか表示されるようになりました。 また、CMake 対応の複数のアクションが Find Action ウィンドウに追加され、それらをたびたび使用するものにショートカットを割り当てられるようになりました。

  • CMake 設定
  • CMake プロジェクトの再ロードを停止
  • CMakeCache ファイルを開く

CMake のアップグレード

CLion が CMake 3.17 をバンドルするようになり、最新機能のうち次の 2 つをサポートし始めました。

  1. Ninja Multi-Config: -G "Ninja Multi-Config" ジェネレーターオプションを渡し、構成ごとに生成された CLion のビルドファイルを取得できるようになりました(一時的ではありますが、CLion は引き続き CMake プロファイル用に選択された構成を 1 つだけ使用します)。
  2. CMake コンパイル済みヘッダー: target_precompile_headers コマンドを使用すると、ヘッダーファイルを ターゲットの PRECOMPILE_HEADERS または INTERFACE_PRECOMPILE_HEADERS プロパティ(またはその両方)に追加できます。 CLion はこのようなコンパイル済みヘッダーを適切に処理します。

短いツアーに参加

プロジェクトのビルド

単一ファイルの再コンパイル

Recompile single file アクションはローカルの変更をすばやくチェックして開発プロセスの高速化を促しますが、Ninja や CMake で使用される CLion のサポート対象のその他のジェネレーターで使用できるようになりました。

重要なバグフィックスにより、CLion が複数の独立したプロジェクトを並行してビルドできるようになりました。これらのビルドが互いの起動を妨げることはありません。

コード解析

CLion 2020.2 ではコード解析に大規模なアップデートが施され、多くのチェック機能で精度が向上し、より幅広いケースに対応できるようになりました。 このバージョンでは、これまで Clangd ベースのエンジンで再実装されていたデータフロー解析の改善作業も継続して行われています。

ダングリングポインター

ダングリングポインター

ポインターが無効なデータを参照していると、実行時に問題が発生します。 よくあるケースは、double-freeuse-after-free の組み合わせです。 CLion はこのようなダングリングポインターがローカルスコープに出現し、ポインターの演算が発生せず、マクロが CLion の解析を妨げていない場合にキャッチするようになりました。

単純化

単純化

Simplify(単純化)コードインスペクションの精度が向上し、より幅広いケースに対応できるようになりました。 次の種類のステートメントに対応しています。

  • condition == true.
  • condition1? true : condition2.
  • if(condition1) return true; return condition2;
  • まったく同じ分岐のステートメント。

これらのケースは Settings | Editor | Inspections | C/C++ | General | Simplifiable statement で個別に調整できます。

絶対に更新されないループ条件

絶対に更新されないループ条件

この CLion インスペクションはループ条件がループ内で更新されない状況を検出します。 これは Clang-Tidy の clang-tidy:bugprone-infinite-loop に似ていますが、終了ポイントがあるループに機能し、ラムダや参照のあるケースに対応しています。

Unused code インスペクション

Unused code インスペクション

Unused code(未使用コード)インスペクションが大幅に改修されました。 数ある変更点の中でも代表的なのは、構成を使用してグローバルおよびローカルに定義された using コンストラクターに対して機能するようになったことです。

Inspection ウィジェットと Problems ビュー

Inspection ウィジェットと Problems ビュー

最後に、新しい Inspection ウィジェットを導入しています。 このウィジェットは現在ファイル内の警告とエラーの数を表示し、それらの問題箇所の間を簡単に移動できるようにします。 ハイライトのレベルを調整することもできます(かつて Hector アイコンと呼ばれるもので実行できていたものと同様です)。

Inspection ウィジェットをクリックすると、Problems View ツールウィンドウが開きます(View | Tool Window | Problems)。 このツールウィンドウは現在ファイル内の警告とエラーのリストを表示し、問題が発生したコードの位置に移動するのに役立ち、Alt+Enter のショートカットを呼び出して問題を修正する機能を提供します。

C++20

今年は公式に新しい言語標準が C++ 開発者に公開されますが、CLion はすでにその多くの機能をサポートしています。 CLion 2020.2 の言語エンジンも多くケースで C++20 のコードに対する安定性が向上しています。

C++20 のキーワード

C++20 のキーワード

新たに追加されたキーワードは、CLion 2020.2 のハイライトと補完でサポートされています。

  • char8_t
  • consteval および constinit
  • co_awaitco_returnco_yield
指示付き初期化子

指示付き初期化子

指示付き初期化子のコード補完が基本クラスのフィールドに機能するようになりました。

explicit(bool)

explicit(bool)

C++20 の explicit(bool) 構文が正しくハイライトされるようになりました。 また、条件引数の名前ヒントも実装され、ナビゲーションとリファクタリングでサポートされています。

初期化子を伴う範囲ベースの for

初期化子を伴う範囲ベースの for

init ステートメントを伴う範囲ベースの for ループがサポートされるようになりました。 サポート対象には、ループ内変数の Rename のようなリファクタリングなどがあります。

関数の結果を制約

関数の結果を制約

コンセプト (concepts)を使用するコードに対応した新しいインスペクションが追加されました。 このインスペクションは、制約が付与された関数の呼び出し結果がローカル変数に割り当てられている場合に、auto として宣言されたローカル変数を制約することを提案します。

ユニットテスト

Doctest サポート

Doctest サポート

CLion 2020.2 では、さらに別の C++ 用シングルヘッダーフレームワークである Doctest のサポートも開始しています。 Doctest はコミュニティで人気を博しており、自動テスト検出、Run/Debug 構成の作成、テスト結果を表示する便利な組み込みのテストランナーを備えた CLion によってサポートされています。 起動するテストセットの構成方法については、こちらの特集ブログ記事で詳細を確認してください。
Catch2 テンプレートテスト

Catch2 テンプレートテスト

Catch2 のこの種のテストタイプが他のテストタイプと同様に認識され、処理されるようになりました。

Google Test でテストをスキップ

Google Test でテストをスキップ

Google Test の GTEST_SKIP() マクロは実行時にテストをスキップする機能を提供します。 このマクロが CLion でサポートされるようになりました。

コードカバレッジ

コードカバレッジ

CLion 2020.2 は Run with Coverage ボタンをクリックした際にカバレッジフラグを自動的に追加し、ユーザーエクスペリエンスを向上させます。 現在選択中の CMake プロファイルにカバレッジ用のコンパイラーオプションが含まれていない場合、CLion は CMAKE_CXX_FLAGS および CMAKE_C_FLAGS 経由で渡されたカバレッジフラグを使用して CMake プロファイルを検索します(見つからない場合は作成します)。

組み込み開発: PlatformIO プラグイン

組み込み開発向けに PlatformIO 対応のプラグインを更新し、大幅な機能改善を行いました。

platformio.ini ファイルでのハイライト

platformio.ini ファイルでのハイライト

PlatformIO プロジェクトの構成ファイルが適切にハイライトされるようになり、視認性が向上して編集しやすくなりました。

新しい Run/Debug 構成

新しい Run/Debug 構成

CLion では新しいプロジェクトが New Project ウィザードから作成されると、多くの便利な Run/Debug 構成が自動的に追加されます。 例えば、_PROGRAM_MONITOR_CLEAN_TEST その他多くがあります。

PlatformIO 構成用の CMake プロファイル

PlatformIO 構成用の CMake プロファイル

CLion が PlatformIO CMake プロジェクトで CMAKE_CONFIGURATION_TYPES 用の CMake プロファイルを自動的に作成するようになりました。

VCS

WSL2 にインストールされた Git

WSL2 にインストールされた Git

WSL2 ツールチェーンで開発を行い、WSL2 上の Git を使用する際に、CLion でプロジェクトの場所に応じて Git 実行可能ファイルを切り替えられるようになりました。 また、(\\wsl$ パス経由で)開いているプロジェクト用の WSL2 にインストールされた Git 実行可能ファイルが自動検出されるため、すべての Git 関連機能を切り替えて作業することができます。

GitHub プルリクエスト

GitHub プルリクエスト

CLion 2020.2 には、新たに大きな GitHub プルリクエスト用のビューが導入されています。 このビューには特定のプルリクエストに関するすべての情報(メッセージ、ブランチ名、作成者、担当者、変更されたファイル、コミット、タイムラインなど)と、コミット前のチェックの結果が表示されます。 また、IDE 内からレビューの開始、レビューのリクエスト、コメントの追加、プルリクエストのマージなどの多くのアクションを実行できるようになっています。

詳細情報

Go to Declaration or Usages アクション

Go to Declaration or Usages アクション

Go to Declaration or Usages アクション(宣言または使用箇所に移動)(Ctrl+Click / Ctrl+B)は、次のように状況や IDE の設定によって異なる動作をします。

  • シンボルの使用箇所で呼び出した場合、その使用箇所の宣言に移動します。
  • 宣言で呼び出した場合、その宣言に対応する使用箇所のリストが表示されます。
  • 定義で呼び出した場合、関連する宣言または使用箇所が表示されます。 この動作は Settings | Editor | General | Go to Declaration or Usages で調整できます。

パフォーマンスの改善

UI のフリーズまたは遅延の問題がいくつか解消されました。 エディターのパフォーマンス低下を防ぐため、マクロ定義の中で Enter を押した際に CLion がバックスラッシュを挿入するようになりました。 マクロ定義は次の行に続いている可能性が非常に高いため、IDE が冗長にアクティビティを再解析せずに済みます。

Rust プラグインのアップデート

Rust プラグインのアップデート

このプラグインのバージョン 0.3 では、これまで実験的であったマクロ展開用の新しいエンジンがデフォルトで有効化されています。 このエンジンはマクロが生成した impl ブロックとモジュールの宣言を処理し、tokioasync-std などのクレート(crates)を含むコード全体に対するコードインサイトを提供します。 詳細については、このブログ記事を参照してください。

その他の重要な更新には、Rust の MSVC ツールチェーンに対応したデバッガーの導入があります。 CLion にバンドルされた LLDB ベースのデバッガーを Visual Studio ツールチェーンに使用し、Rust の MSVC を使用して Windows 上でビルドされた Rust のコードをデバッグできるようになりました。

その他の機能強化には、新しいリファクタリング(ファイルと最上位項目の MoveIntroduce Constant)、or_patterns のサポート開始、println! などのマクロ内フォーマットリテラルのエラーハイライト、エディター内のドキュメント表示、チェーンメソッド呼び出しのインレイヒント、IntelliJ IDEA 内デバッガーワークフローの改善などがあります。

詳細情報

その他の改善

  1. JetBrains が管理する Microsoft Visual Studio C++ ツールチェーン向けの LLDB デバッガーに多数の改善が加えられました。 最も注目すべき改善点は、デバッグセッションが停止時にフリーズしなくなったこと、スレッドがエントリポイント関数に応じて自動的に命名されるようになったこと、デバッガーのパフォーマンスが大幅に向上したこと、多くのフリーズとクラッシュが解消されたことです。
  2. 更新版の GDB STL プリティプリンターが CLion 2020.2 にバンドルされています。
  3. 今後は Clangd ベースのエンジンが CLion のデフォルト言語エンジンになり、このエンジンをオフにするオプションが廃止されました。 Settings | Languages & Frameworks | C/C++ | Clangd に使用中の LLVM Clang リビジョンの情報が表示されるようになったため、C++ のサポートと組み込みの Clang-Tidy チェックに関して期待できるものを把握できるようになります。

CLion 2020.1の新機能

組み込み開発

IAR ツールチェーン

IAR ツールチェーン

組み込みプロジェクトで IAR コンパイラ / ツールチェーンをお使いの場合、CLion でも同じ作業をできるようになりました。 コンパイラ情報取得時のエラーが修正されました。これにより、IAR ツールチェーンを使うプロジェクトは正常に読み込まれ、CLion を使用することができます。

特記事項:

  • MinGW が必要です。
  • IAR Embedded Workbench で CMake を使用する際のヒントはこちらで確認できます。
PlatformIO

PlatformIO

PlatformIO は人気急上昇中の新世代エコシステムです。 組み込みプロジェクトでそのメリットを得るには、新しい PlatformIO for CLion プラグインをご活用ください。その機能は以下の通りです。

  • PlatformIO のプロジェクトタイプを新規プロジェクトウィザードに追加。
  • 対応する PlatformIO CMake ベースのプロジェクトを生成。
  • 自動的にデバッグとアップロード用の構成を作成。
  • CLion の PIO 統合デバッガーを使ったオンチップのデバッグが可能。

など! 詳細は公式ドキュメントをご覧ください。

CUDA サポート

コード解析とコーディング支援

CUDA に特化した拡張機能をすべて含む、CUDA C と C++ のコードが正しく解析され、ハイライトされるようになりました。 これは、コードナビゲーション、コードのドキュメント化、その他のコーディング支援アクションが CUDA コードで機能することを意味します。 また、CLion はカーネルコールの角括弧を入力することもできます。

GitHub から ClaraGenomicsAnalysis プロジェクトをクローンして、CUDA サポートの面における CLion の能力をご覧ください。

新規プロジェクトウィザード

新規プロジェクトウィザード

CLion の新規プロジェクトウィザードは、CUDA プロジェクト (ライブラリまたは実行可能ファイル) を作成するオプションの追加によって更新されています。 選択すると、CMakeLists.txt と main.cu のサンプルファイルが生成されます。

ファイルの拡張子と CMake ターゲット

ファイルの拡張子と CMake ターゲット

新しくなった C/C++ ファイル作成ダイアログでは、CUDA ファイルの新しい拡張子として .cu and .cuh がサポートされています。 このダイアログで更新する潜在的なターゲットのリストには、一般的な CMake と CUDA 固有のターゲット (cuda_add_executable および cuda_add_library コマンドで作成) が含まれます。

詳細情報

Windows での開発

Clang-cl

Clang-cl

Windows 上で CLion の clang-cl を使用できるようにしました。バージョン 8.0 以降で対応しています。

LLVM ウェブサイトから、または Visual Studio ツールと一緒にインストールできます。 完了したら、CLion で Visual Studio ツールチェーンを選択し、ツールチェーン設定から clang-cl.exe を指定します。

Visual Studio C++ のツールチェーン用デバッガ

Visual Studio C++ のツールチェーン用デ