CLionの新機能

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++ のツールチェーン用デバッガ

JetBrains が Visual Studio C++ のツールチェーン用に開発した LLDB ベースのデバッガはこのツールチェーンのデフォルトのデバッガになりました。 今すぐ活用できます!

ネイティブなビジュアライザー用にバンドルされたサポートは、Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB で明示的に有効化する必要があります。

実行構成とデバッグ構成

リモートおよび埋め込み GDB のカスタムターゲット

リモートおよび埋め込み GDB のカスタムターゲット

リモート GDB サーバー埋め込み GDB サーバー構成にカスタムターゲットを使用できるようになりました。 以前 CMake ターゲットでのみ機能していたこれらの構成により、ローカルマシンで実行されているCLionインスタンスからリモートホストまたはマイクロコントローラーでアプリケーションをデバッグできます。

既にこれらの構成を作成している場合、CLion 2020.1 は以前の Run/Debug 構成設定をプロジェクトフォルダーの projectFilesBackup ディレクトリに保管し、それについて通知します。

Run/Debug 構成のマクロとパス変数に対するサポート

Run/Debug 構成のマクロとパス変数に対するサポート

パス変数とマクロは CMake、Custom Build、および Gradle のネイティブアプリケーション構成の の Program Arguments と Working Directory フィールドで使用できるようになりました。 マクロは以下の値を取得する場合に役立ちます。

  • CMake の現在の実行構成のビルドディレクトリ。
  • CMake の現在の実行構成の生成ディレクトリ。
  • プロジェクトファイルのディレクトリ。
  • その他多くの値を取得できます。

FilePrompt/Prompt マクロは、構成の実行 / デバッグ中にファイル選択ダイアログや文字列入力ダイアログを表示するときに使用できます。

パス変数は、プロジェクト内で広範に使用され、かつプロジェクトディレクトリの外に置かれているライブラリへのパスを定義できます。

入力リダイレクト

入力リダイレクト

入力をファイルからアプリケーションの stdin にリダイレクトできるようになりました。 構成の中にある Redirect input from という新しいフィールドを使ってください。 これらを入力してください:

  • 相対パス (CLion は Working Directory へのパスを追加します)。
  • 絶対パス (リモート構成用に再度マッピングされます)。
  • もしくはマクロ (FilePrompt など)。

Clang ツール

Clangd の DFA

Clangd の DFA

CLion の Data Flow Analysis (DFA) は、コード内のデータフローを分析したり、その結果を基に潜在的な問題を検出したりと、通常のコンパイラにはない機能を提供します。 常に「false」か「true」の条件式、無限ループ、return 文の欠落、無限再帰などを検出します。 また、2020.1 では、DFA は Clangd ベースの言語エンジンに移行され、パフォーマンスの正確性が増し、以前よりも軽くなっています。 未だ開発は進行中ですが、既に良い結果が得られています!

Clangd だけを基にしたコード補完

Clangd だけを基にしたコード補完

Clangd ベースの言語エンジンが完全なコード補完を提供する新しいモードがデフォルトでオンになっています。 このモードは、複数のエンジンによるコード補完の結果が混合されていたときに発生していた優先度と順序に関する問題を解決します。 この動作は Settings | Languages & Frameworks | C/C++ | ClangdCode Completionで設定できます。

様々な修正や各種機能強化により、この新しいモードは正確かつパワフルに出来上がっています。

詳細情報

ClangFormat

ClangFormat

プロジェクトルートに .clang-format 構成ファイルが存在するプロジェクトを初めて開くとき、CLion がそれを検出し、自動的に ClangFormat に切り替えます。

.clang-format 構成ファイルのないプロジェクトで ClangFormat を有効化すると、CLion が構成ファイルの作成を提案します。

Clang-Tidy

Clang-Tidy

.clang-tidy 構成ファイルがプロジェクトの中で検出されると、Clang-Tidy の IDE 設定の使用が CLion によって自動的にオフにされるようになりました。 この動作は、Settings | Editor | Inspections | C/C++ | General | Clang-TidyPrefer .clang-tidy files over IDE settings で管理できます。

フォーマッターとコードの折りたたみ

新しい命名設定

新しい命名設定

構造体のメンバフィールドとクラスのメンバフィールドに個別の命名設定が設けられるようになりました。 詳細は、Settings | Editor | Code Style | C/C++ | Naming Convention で確認してください。

コードの折りたたみ

コードの折りたたみ

#pragma region#pragma endregion を CLion でコードの折りたたみに使用できます。

リファクタリングの更新

リファクタリングの更新

Change Signature リファクタリング (Ctrl+F6) を呼び出すと、CLion が関数のすべての使用箇所を更新します。 Change Signature ダイアログの新しい Default value フィールドを使用すると、すべての使用箇所で使用するパラメータの値を指定できます。 以前のままデフォルト値の型を使用する場合は、空にしておきます。

Create Parameter From Usage クイックフィックスと Add Parameter to Constructor インテンションでも、同じロジック、および、新しい Default value フィールドの指定が適用されます。

エディター

クイックドキュメンテーション

クイックドキュメンテーション

ドキュメントをプレビューし、関数のシグネチャ、推論された型、マクロ置換に関する情報を取得するためのユニバーサルツールであるクイックドキュメンテ―ションはカーソルを合わせると表示されます。

Settings | Editor | Code EditingShow quick documentation on mouse move 設定で管理できます。

JetBrains Mono と IntelliJ Light

JetBrains Mono と IntelliJ Light

エディタのデフォルトのフォントは、JetBrains が作成したオープンソースの新しいフォント JetBrains Mono に変更されました。 コードを読みやすくするようにデザインされています。

新しいデフォルトのライトテーマ IntelliJ Light は、すべての異なるオペレーティングシステムのスタンダードなテーマになりました。 デフォルト以外のテーマは、View | Quick Switch Scheme | Theme で選択できます。

ターミナルセッションを分割する

ターミナルセッションの分割

CLion 2020.1 では、ターミナルセッションを上下または左右に分割し、並べた状態で実行できます。 分割ターミナルセッションを作成したり、ナビゲートしたり、閉じたりするには、ターミナルからコンテキストメニューを呼び出します。

バージョン管理

コミットツールウィンドウとコミットダイアログ

新しい Commit ツールウィンドウ

更新されたツールウィンドウは、変更されたファイルや diff の一覧を表示するスペースが広くなっています。 また、準備が済んでいるコミットに変更を加えたり、反復的にコミットメッセージを作成したり、どの段階的な変更をどのコミットに入れるのかを選択したりもできます。

新しい UI は、新ユーザーに対してデフォルトで有効になっています。既存のユーザーは Settings | Version Control | Commit から切り替えることができます。

Interactively Rebase from Here

改良された真にインタラクティブなダイアログでは以下の操作が可能です。

  • ブランチ内の各コミットに対して実行するアクションを選択してください。
  • 適用済みのアクションを示すグラフをチェックしてください。
  • コミットの詳細を確認してください。
  • diff を確認し、必要に応じて変更内容をレビューまたはリセットしてください。

IDE から Git をインストールする

Version Control ツールウィンドウは、Git ツールウィンドウに名前が変更されました。Git の代わりに Subversion/Mercurial/Perforce のいずれかを使用している場合は、その名前が使われます。

Git を手動でプレインストールする必要がなくなりました! プロジェクトを Git で開くときや VCS からインポートする際に、使っているマシンに Git がインストールされていない場合は、CLion がユーザーの代わりに Git をダウンロードし、インストールする提案が表示されます。

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

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

LLDB サポートの改良により、IntelliJ Rust に列挙型とプリミティブ型が適切に表示されるようになったほか、デマングルされた関数名がコールスタックに表示されます。

プラグインのもう 1 つの大きな更新に REPL の統合があります。 Tools | Rust REPL からコンソールを呼び出し、プロトタイプの作成やコードを 1 行ずつ確認する際に使用できます。 この統合は、シンタックスハイライトやコード補完のほか、コマンド履歴、ソフトラップ、最終行へのクイックスクロールといった便利なコンソールアクションを提供します。

言語サポートの面では、IntelliJ Rust が型エイリアスの impl ブロックを処理するようになりました。 パフォーマンスを考慮し、この機能はエイリアスの数が限られている型に対してのみ有効にしています。

強化された機能には他にも未使用のローカル変数のハイライトや cfg 属性サポートの修正、新しい Lift return 分析が含まれています。

その他の改善

  • すべてのリモート構成には SSH 構成の共通統合 UI の使用が便利になりました。 新しい SSH 構成の作成元 (リモートのツールチェーン設定やリモート GDB サーバー構成) に関わらず、エントリーは Settings | Tools | SSH Configurations で確認できます。
  • ソースコードにだけ集中したい場合は、Distraction-Free モードFull Screen モード を組み合わせた新しい Zen モードを選択します。 有効にするには、View | Appearance | Enter Zen Mode を使用してください。

CLion 2019.3の新機能

IDEのパフォーマンス向上

このCLionのリリースは品質向上を目標としており、全体的に多数のパフォーマンス改善が行われています。 この重要な機能強化は、コード補完、Renameリファクタリング、シンボルの作成/更新手順の最適化、UIのフリーズ解消に影響しています。

詳細情報

Clangdベースのコード補完

ClangdがCLionのコード補完プロバイダのリストに追加されました。これにより、多くのプロジェクトで最初の結果が表示されるまでの時間が短縮されます。 当社が収集した詳細なパフォーマンス メトリクスをご確認ください。

リファクタリング

Renameリファクタリングの高速化

CLionのRenameリファクタリングが非常に強力になり、コードの使用箇所だけではなく、文字列リテラルやコメント内での使用箇所も名前変更できるようになりました。 引き続きコードの使用箇所のみを名前変更したい場合でも、処理が大幅に高速化されています。実際に検索を行うに処理方法を求めるように設定できるためです。 (この設定を使用するには、Settings | Editor | General | Refactorings | Enable in-place mode.)をオフにしてください。)

CMakeにおけるNinjaとその他のジェネレータ

Ninja Gen

新しいCMake File APIをサポートすることで、CLion 2019.3ではさまざまなCMakeジェネレータを有効化できるようになりました(CMake 3.15以降が必要です)。 これまではMakefileのみがサポートされていましたが、このバージョンからはNinja、Xcode、Visual Studioなどを選択できるようになりました。

この機能はすべてのプラットフォーム、リモートモード、WSLで機能します。

詳細情報

CMakeのデフォルト設定

CMakeのデフォルト設定

CLionで新規プロジェクトを設定する手順を簡略化するため、すべての新規プロジェクトに使用されるデフォルトのCMakeプロファイルを1つまたは複数設定できるようになりました。 File | Other Settings | Settings for New Projects…

CMakeのサポートに関するその他の改善点は以下の通りです。

  • CMakeの設定に部分的に問題があっても、有効な設定のみを再読み込みできるようになりました。
  • CLion 2019.3ではCMake 3.15をバンドルするようにしました。
  • CLion 2019.3ではお使いのコンパイラが -fpch-preprocess フラグをサポートしていない場合でもプロジェクトが正常に読み込まれるようになりました。詳細については、このブログ記事をご確認ください。

デバッガ

リモートGDB

リモートGDBサーバー

ローカルで実行中のCLionからリモートマシン上の実行ファイルをデバッグしたい場合、Remote GDB Server設定を使用できるようになりました。 CLionはgdbserver配下に実行ファイルをアップロードして起動するため、手動でこれらの操作を行う必要はありません。

詳細情報

lldb_printers

LLDB 9とプリティプリンタの改善

CLion 2019.3では、macOSとLinuxにバンドルされるLLDBがバージョン9.0にアップデートされました。このほか、バンドル対象のLLDBプリティプリンタで大規模なクリーンアップが実施され、関連する一連の問題が修正されました。

macOSおよびLinux上でのlibc++とlibstdcxxの対応状況をご確認ください。

lldbinit

プロジェクトルートからの .gdbinit/.lldbinit の読み込み

CLionがプロジェクトのルートディレクトリから設定ファイルを読み込めるようになったため、特定プロジェクトでのGDB/LLDBデバッガの動作をカスタマイズできるようになりました。

この動作を有効化するには、ホームディレクトリ内のファイルで明確に許可する必要があります。 LLDBGDBでこの設定を行う方法をご確認ください。

C++20 Concept対応

Clangdベースのコード補完

C++20で実装される最大の機能の一つConceptです。 ClangのConcept対応を行った作者と協力し、CLion 2019.3にConceptを導入しました。この対応によってコード解析やハイライト表示機能(Clangdベースの言語エンジンによって実行されます)だけでなく、次の機能も実装されました。

  • Unused Concept(未使用Concept)インスペクション。
  • std::is_base_of<MyBase, T>およびstd::is_same<Other, T>による制約を受ける型の補完を含むコード補完。
  • Rename(名前の変更)リファクタリング。
  • Go to Definition(定義に移動)およびFind Usages(使用箇所の検索)。

詳細情報

コード解析

仮想呼び出し

コンストラクタ / デストラクタから呼び出される仮想関数

仮想関数が初期化されていない、または抹消済みのリソースにアクセスする状況を回避するため、CLionにコンストラクタやデストラクタから呼び出される仮想関数を検出する新しいインスペクションが実装されました。

Doxygenでのスペル

スペルチェッカー

スペルチェッカーはコードの正確さと読みやすさを維持するのに役立ちます。 CLionは長い間C/C++に対応したスペルチェッカーを提供してきました。 バージョン2019.3では、CMakeやDoxygenのコメントでスペルチェッカーをご利用いただけるようになりました。

コードカバレッジ

カバレッジ

構成を実行中にあるステートメントが実行されたかどうかを確かめたいと思ったご経験があるのなら、コードを評価するステートメントカバレッジが必要だということになります。 CLion 2019.3にはllvm-cov/gcovツールが組み込まれているため、ステートメントカバレッジを計測できます。

これは、ユニットテストを実行するか、通常の構成を実行することで取得できます。 結果はCoverageツールウィンドウか、エディタの左ガターのカラー表示で確認することができます。

詳細情報

エディタ

Go to Header/Source(ヘッダ/ソースに移動)アクション

Go to Header/Source(ヘッダ/ソースに移動)アクション

ヘッダーファイルとソースファイルを切り替えるための新しいアクションが追加されました。 C/C++では多くの場合、Go to Related Symbol(関連シンボルに移動)よりも正確かつ高速に動作します。

500ミリ秒以内に複数の移動先候補が識別されると、CLionは新しいアイテムが追加された、移動先を選択できる対話型のポップアップを表示します。

必要に応じてGo to Related Symbolからこの新しいアクションにショートカットをマッピングし直すための仕組みも用意されています。

詳細情報

Microsoft

Microsoftのフォーマットと命名規則

CLionではフォーマットオプションと命名規則ルールの一式を設定できます。 または、これらの設定を定義済みのスタイルのいずれかから継承することもできます。 CLion 2019.3では、Microsoftの定義済みフォーマットと命名スタイルをリストに追加しています。

WSL2

WSL2

Windows Subsystem for Linuxは、Window上でLinuxをターゲットプラットフォームとする開発を行うための便利な方法を提供します。 CLionはWSL環境をネイティブにサポートしており、今回は新たにWSLバージョン2をサポートしました。 CLionでの設定手順はWSLバージョン1でもWSLバージョン2でも全く同じです!

詳細情報

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

Rust

IntelliJ Rustに対する最大のアップデートの一環として、cfg属性の初期サポートを追加しました。 条件付きで無効化されたブロックはグレー表示され、解決やコード解析の対象から除外されるようになりました。 サポート対象のcfgのオプションは、unixwindowstarget_osです。

広く使用されているクイックフィックスである未解決シンボルの自動インポートが、Implement membersSpecify type explicitlyAdd remaining patterns、およびその他のコード生成アクションを呼び出したときに自動的に実行されるようになりました。

その他の変更には、すでにいくつかのリリースでプラグインに実装されていたRustコードのコードカバレッジ、対話形式による便利な型ヒントの埋め込み、include!マクロのサポートがあります。

その他の変更

  • VCSのサポート:Cloneダイアログ(VCS | Get from Version control)を改修しました。 このダイアログからログインすると、またはログイン済みの場合、アカウントや組織別にグループ化されたすべてのリポジトリのリストをすぐにプレビューできます。
  • スクロールバーの視認性を向上させるための新しいオプション(Settings | Appearance & Behavior | Appearance | Use contrast scrollbars)が追加されました。
  • 更新後のJetBrains Runtimeでは、UIに関する多数の問題が解決しています。