CLion の新機能

CLion の新機能

CLion 2020.3 は、開発プロセスの主要部分(コード分析、アプリケーションの実行とデバッグ、単体テスト)に、熱心に期待されている重要な改善をもたらします。組み込みプロジェクトの場合、CLion には初期の MISRAC および C++ サポートが付属しています。また、Qt ユーザーは、Qt コードを操作するために特別に調整された IDE 機能の恩恵を受けることができます。

デバッガー

ルートとしてデバッグする

CLion 2020.3 は、root 権限でアプリケーションを実行およびデバッグできます。対応する実行 / デバッグ構成で、このオプションを選択するだけです。これは、CMake、Makefile、Gradle ネイティブ、カスタムビルド、CTest アプリケーションで機能します。

Debugging with Core Dumps

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

Linux および macOS で使用可能な新しい実行 | オープンコアダンプ…アクションを使用すると、クラッシュしたプロセスの既存のコアダンプを CLion で開き、そこでデバッグできます。ユーザーは、フレームと変数のビューを調べ、メモリと逆アセンブリのビューを確認し、式を評価し、デバッガーコンソールからデバッガーコマンドを実行できます。この機能の構成プロセスと既知の制限についての詳細を参照してください(英語)

Set Execution Point

実行ポイントの設定

新しい実行ポイントをカーソルに設定アクションを使用すると、デバッグ中にプログラムの実行を前後に移動したり、ループを中断または再起動したり、if-else 句または switch-case ステートメントで別のブランチを選択したり、ループを完全にスキップしたりできます。ガター内の矢印を目的の線にドラッグアンドドロップするのと同じくらい簡単です。

さらに学習したい方に (英語)

Interactive hints and Inline watches

対話的なヒントとインラインウォッチ

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

実行設定

Configure environment with a script

スクリプトを使用して環境を構成する

CLion では、スクリプトを使用して、実行 / デバッグ構成が起動される環境を指定できるようになりました。このための新しい設定は、すべてのアプリケーションおよび単体テスト構成にあります。

Edit configurations while indexing

インデックス作成中に構成を編集する

もう待つ必要はありません ! 実行 / デバッグ構成は、プロジェクトのインデックス作成中に編集できます。

ユニットテスト

CTest support

CTest のサポート

CMake 固有のテストランナーである CTest が CLion でサポートされるようになりました。これは、CTest で実行されるテストのリストが検出され、IDE がそれらの実行 / デバッグ構成を自動的に作成することを意味します。テストが開始されると、結果は組み込みのテストランナーに表示され、そこからテストをデバッグしたり、失敗したテストのみを再実行したりできます。

さらに学習したい方に (英語)

Test runner for Google Test

Google テストのテストランナー

バージョン 2020.3 は、世界で最も人気のある C++ 単体テストフレームワークである Google Test に対する CLion のサポートを強化します( 2020 / a の DeveloperEcosystem Research は、C++ 開発者の 31% が Google Test を使用していることを示しています)(英語)


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

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

MISRA

MISRAC および C++

CLion 2020.3 は、組み込み開発、特に自動車業界で広く使用されているガイドラインである MISRA C2012 および MISRA C++2008 を部分的にサポートします。このサポートは、開発サイクルの早い段階で非互換性を明らかにすることにより、そのようなプロジェクトの開発をスピードアップします。現在サポートされているチェックのリストは、CLion の Confluence ページ(英語)で入手できます。

Unused value

未使用の値

CLion 2020.3 は、 未使用の値インスペクションを改善します。これは、変数値が割り当てられた後、変数値が使用されない状況をキャッチします。また、デフォルトの変数初期化子の使用を推奨するスタイルに従うように調整することもできます。このような場合にインスペクションをオフにする新しいオプションが設定に追加されました。

Extract Lambda Parameter

ラムダパラメーターの抽出

新しい ExtractLambda パラメーターリファクタリングが CLion に追加されました。式またはステートメントを、対応する引数として渡されたラムダ式を使用して新しいパラメーターに抽出します。このステートメントは、たとえば、ソート関数に渡されるコンパレーターにすることができます。

抽出リファクタリングの動作を参照してください (英語)

コード補完

Clang completion snippets

Clang 完了スニペット

Clang 補完スニペットは、C++ キーワードが入力されたときに一般的な構成を挿入できます。たとえば、typedef キーワードを完成させるときに、コード補完はキーワード自体だけでなく、タイプと新しい名前のスタブも提案できる場合があります。

Completion for templates

テンプレートの完成

CLion 2020.3 は、テンプレートタイプでより正確に機能するようになったため、コード補完を改善します。例:関数テンプレートのコンテナー要素とイテレータの補完オプションが表示されます。

Qt プロジェクト

Create a new Qt project

新しい Qt プロジェクトを作成する

新しいプロジェクトダイアログは、Qt コンソールの実行可能ファイルと Qt ウィジェットの実行可能プロジェクトの種類を提案します。Qt CMake プレフィックスパス、プロジェクトで使用する C++ 言語標準、および Qt バージョンを選択することもできます。新しいプロジェクトは、対応するテンプレートを使用して生成されます。

Create a new Qt UI Class

新しい QtUI クラスを作成する

新規メニュー (Alt+Insert) の新しい QTUI クラス項目は、.ui ファイルとともに Qt クラスを同時に作成できます。クラス名を入力し、親クラス(QWidget , QMainWindow、または QDialog)を選択します。.h / .cpp / .ui ファイルは、ファイル名ベースをファイル名として使用して生成されます。生成されたファイルは、 設定 / 環境設定 | エディター | ファイルおよびコードテンプレートQt クラスQt クラスヘッダーQt デザイナーフォームにリストされているテンプレートに従います。

Complete signals and slots

完全な信号とスロット

シグナルとスロットは、オブジェクト間の通信に使用されるエンティティであるため、Qt の中心的な機能です。CLion は、シグナルまたはスロットをいつ完了する必要があるかを認識し、完了ドロップダウンで対応するメンバーのみをフィルタリングするようになりました。

Auto-import in Qt style

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

CLion 2020.3 の Qt プロジェクトでの自動インポートの提案は、Qt で最も一般的に使用されるスタイルに従うように調整されています。

Makefile プロジェクト

Support for projects using libtool, dolt, and ccache

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

ccachelibtooldoltslibtooljlibtool などの様々なラッパーを使用する Makefile プロジェクトを CLion に正常にロードできるようになりました。残っている制限事項の詳細については、こちらを参照(英語)してください。

Run/Debug configurations

実行 / デバッグ構成

CLion での Makefile プロジェクトのセットアップがさらに簡単になりました。プロジェクトのロード時に、トップレベルの Makefile 内のターゲットに対して実行 / デバッグ構成が自動的に作成されます。実行してデバッグするには、ビルドされた実行可能ファイルを構成に指定する必要があります。

さらに学習したい方に (英語)

Recompile single file

単一ファイルを再コンパイルする

再コンパイルアクション (Ctrl+Shift+F9) は、プロジェクト全体をビルドせずに 1 つのファイルをコンパイルすることにより、開発プロセスをスピードアップできます。Makefile プロジェクトでも機能するようになりました !

CMake

Enable/Disable CMake Profiles

CMake プロファイルを有効 / 無効にする

CLion 2020.3 を使用すると、現在使用されていないプロファイルを無効にしながら、CLion で構成された複数の CMake プロファイルを保持できるようになりました。これにより、プロジェクトの読み込み時間が改善され、一時的に使用できないプロファイル(現在シャットダウンされているリモート構成など)による冗長な障害が回避されます。このオプションは、CMake ツールウィンドウと CMake プロファイル設定ダイアログから利用できます。

さらに学習したい方に (英語)

VCS

Git tab in Search Everywhere

SearchEverywhere の Git タブ

どこでも検索ダイアログに Git タブが含まれるようになりました。コミットハッシュとメッセージ、タグ、ブランチを見つけるのに役立ちます。検索フィールドで簡単な数学的計算を実行することもできます。

UI の更新

現在、VCS メニューは、使用中のバージョン管理システムに応じて名前が付けられています。メニューをより簡潔にし、プロジェクトのバージョン管理に最も役立つアクションを除くすべてを削除しました。

さらに、最も人気のある 2 つのボタン( コミットコミットとプッシュ…)がコミット画面に明示的に表示されるようになりました。

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

CLion から直接変更をステージングできるようになりました。この機能を有効にするには、設定 / 設定 | 設定に移動します。バージョン管理 | Git をクリックし、 ステージングエリアを有効化チェックボックスをオンにします。 コミットビューで新しい段階的なノードにファイルを追加するには、+ アイコンをクリックします。ガターから、または差分ビューで変更をステージングすることもできます。詳細については、ブログ投稿(英語)を参照してください。

リモート開発

Automatic update of Exclude paths

除外パスの自動更新

ローカルで除外としてマークされたディレクトリは、最初に構成されたときに、リモートツールチェーンの除外パスとして自動的にマークされるようになりました。また、すでに同期されているプロジェクトに変更が加えられると、CLion は更新通知を表示し、 除外パスのリストを更新することを提案します。

詳細を学ぶ (英語)

Code With Me

Code With Me

CLion 2020.3 は、共同開発とペアプログラミングのための JetBrains の新しいサービスである Code With Me(EAP)(英語)をサポートしています。Code With Me を使用すると、IDE で現在開いているプロジェクトを他のユーザーと共有し、リアルタイムで一緒に作業することができます。プラグインマーケットプレイス(設定 / 設定 | プラグイン | マーケットプレイス)から今すぐダウンロードできます。Code With Me の詳細については、これらの投稿(英語)を参照してください。

UI の更新

Updates to Welcome screen

ウェルカム画面の更新

CLion 2020.3 は改善されたウェルカム画面を取得します。新しいレイアウトでは、最も一般的な操作をすぐに実行でき、最近のプロジェクト、カスタマイズオプション、プラグイン設定にすぐにアクセスできます。

Drag and drop for tabs

エディターの分割

メインエディターウィンドウの横にタブをドラッグアンドドロップすることで、エディターを分割できるようになりました。 右に分割して開くアクションは、ファイルを開くときにエディターを垂直方向に分割します。

アクションは、 プロジェクトビューから、または最近使用したファイルどこでも検索Shift+Enter)などの他のナビゲーションポップアップから呼び出すことができます。

IDE theme synced with OS settings

OS 設定と同期された IDE テーマ

CLion が OS テーマと同期できるようになりました。この機能を有効にするには、設定 / 設定 | 設定に移動します。外観と動作 | 外観を確認し、OS と同期チェックボックスをオンにします。OS と同期の横にある歯車のアイコンをクリックして、推奨するテーマを選択します。

Rust プラグインの更新

Rust plugin update

IntelliJ Rust は Cargo 機能を完全にサポートするようになり、スマートな新しい UI で構成できるようになりました。ワークスペースの機能は、シングルクリックでオンとオフを切り替えることができ、プラグインのコードアシスタンスはこれらの設定を考慮に入れます。このブログ投稿(英語)で詳細を確認してください。

また、プラグインでは、デフォルトのコードフォーマッターとして Rustfmt(英語) を使用できるようになりました。 設定 / 環境設定 | 言語 & フレームワーク | Rust | Rustfmt で対応するチェックボックスを設定するだけで、ファイル全体の再フォーマットで Rustfmt が使用されます。今のところ、選択範囲でコードの整形 ... を呼び出すと、代わりに IDE のフォーマッタが使用されます。

プラグインのプロジェクトウィザードは、より多くのテンプレートとカスタム cargo-generate テンプレートを使用するオプションで拡張されました。

その他の更新には、WebAssembly(英語) プロジェクトサポートの導入と名前解決のための新しい実験エンジンが含まれます。

CLion 2020.2 の新機能

CLion 2020.2 は、Makefile プロジェクトを追加して CMake サポートを洗練することにより、さまざまな C++ プロジェクトを確実にカバーします。C++20 標準への準拠が向上します。コード分析がより正確になり、ダングリングポインターなどのより重大なエラーをキャッチできるようになりました。単体テスト、コードカバレッジ、組み込み開発、その他の領域も大幅に強化されます。

プロジェクトモデル

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

Makefile ベースのプロジェクトを開発していますか? CLion のスマート機能のメリット– CLion には、Makefile プロジェクトのサポートが標準で付属しています。プロジェクトとして最上位の Makefile を含むフォルダーを開くか、開くダイアログで Makefile を直接 CLion にポイントします。IDE は make を実行(実際のビルドの実行を回避するために --just-print オプションを使用)、make コマンドの出力を解析し、プロジェクトをロードします。詳細、既知の制限、このブログ投稿(英語)で私たちのアプローチをテストしたプロジェクトの長いリストを確認してください。

ショートツアーを楽しむ

Enhanced CMake UX

拡張された CMake UX

Build, Execution, Deployment | CMake の CMake プロファイル設定には、新しく洗練された UI があり、そこでの設定に役立つヒントがいくつか追加されています。さらに、CMake プロジェクトのいくつかのアクションがアクションの検索で使用できるようになりました。これらを定期的に使用する場合、それらの一部またはすべてにショートカットを割り当てることができます。

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

CMake のアップグレード

CLion に CMake 3.17 がバンドルされ、最新の 2 つの機能の初期サポートが追加されました。

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

ショートツアーを楽しむ

プロジェクトのビルド

Recompile single file

単一ファイルを再コンパイルするアクションは、ローカルの変更をすばやくチェックすることで開発プロセスをスピードアップできます。これは、CMake で使用され、CLion でサポートされる Ninja およびその他のジェネレーターで使用できるようになりました。

重要なバグ修正のおかげで、CLion は複数の独立したプロジェクトを並行してビルドできるようになりました。これらのプロジェクトが互いに開始するのを妨げることはありません。

コード解析

CLion 2020.2 のコード分析は大幅に更新され、多くのチェックの精度が向上し、より多くのケースをカバーしています。このバージョンでは、以前に Clangd ベースのエンジンの上に再実装されたデータ Flow 分析の改善作業も継続されます。

Dangling pointer

ぶら下がりポインタ

無効なデータを指すポインターは、実行時の課題を引き起こします。典型的なケースは、double-freeuse-after-free の組み合わせです。CLion は、このようなぶら下がりポインターがローカルスコープに表示され、ポインター演算が含まれておらず、マクロが CLion による分析の実行を妨げていない場合にキャッチするようになりました。

Simplify

簡略化

Simplify コードインスペクションがより正確になり、より多くのケースに対応できるようになりました。次のタイプのステートメントで機能します。

  • condition == true.
  • condition1? true : condition2.
  • if(condition1) return true; return condition2;
  • 同一のブランチのステートメント。

ケースは Settings | Editor | Inspections | C/C++ | General | Simplifiable statement で個別に設定できます。

Loop condition is never updated

ループ状態は更新されません

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

Unused code

未使用コード

未使用コードインスペクションは大幅にオーバーホールされました。その他の変更の中でも、グローバルおよびローカルの両方で定義された using 構成体の型エイリアスで機能するようになりました。

Inspection Widget and Problems View

インスペクションウィジェットと問題ビュー

最後に重要なことですが、新しいインスペクションウィジェットが導入されました。現在のファイルの警告とエラーの数が表示され、それらの間を簡単に移動できます。また、ハイライトレベルを構成することもできます(以前は、いわゆる Hector アイコンを使用した場合と同じです)。

インスペクションウィジェットをクリックすると、課題ビューツールウィンドウが開きます(View | Tool Window | Problems)。現在のファイルの警告とエラーのリストが表示され、コード内で課題が発生した場所に移動するのに役立ち、ツールウィンドウから Alt+Enter ショートカットを呼び出すことで課題を修正できます。

C++20

今年は公式に新しい言語標準が C++ 開発者にもたらされ、CLion はすでにその機能の多くをサポートしています。CLion 2020.2 の言語エンジンは、一般的に C++20 コードでもより安定しています。

C++20 keywords

C++20 のキーワード

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

  • char8_t
  • consteval および constinit
  • co_await , co_return、および co_yield
Designated initializers

指定イニシャライザ

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

explicit(bool)

explicit(bool)

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

Range-based for with initializer

初期化子付きの範囲ベースの for

init ステートメントを使用した範囲ベースの for ループがサポートされるようになりました。これには、ループ内の変数の名前の変更などのリファクタリングが含まれます。

Constrain a function's result

関数の結果を制約する

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

ユニットテスト

Doctest support

Doctest のサポート

CLion 2020.2 は、C++ のさらに別のシングルヘッダーフレームワーク、Doctest(英語) のサポートを追加します。Doctest はコミュニティで人気を得ており、自動テスト検出、実行 / デバッグ構成の作成、およびテスト結果を表示するための便利な組み込みテストランナーを備えた CLion によってサポートされています。この専用のブログ投稿で、起動用の一連のテストを構成する方法を学びます。
Catch2 template tests

Catch2 テンプレートテスト

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

Skipping tests in Google Test

Google Test でのテストのスキップ

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

コードカバレッジ

Code coverage

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

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

組み込み開発のために、PlatformIO のプラグイン(英語)を更新し、大幅な改善をもたらしました。

Highlighting in platformio.ini files

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

PlatformIO プロジェクト構成ファイルが適切にハイライトされるようになり、ファイルの読み取りと更新がより簡単になりました。

New Run/Debug configurations

新しい実行 / デバッグ構成

CLion の新しいプロジェクトウィザードから新しいプロジェクトが作成されると、多くの便利な実行 / デバッグ構成が自動的に追加されます。例: _PROGRAM , _MONITOR , _CLEAN , _TEST、その他多数。

CMake Profiles for PlatformIO configurations

PlatformIO 構成の CMake プロファイル

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

VCS

Git installed in WSL2

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

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

GitHub Pull Requests

GitHub プルリクエスト

CLion 2020.2 は、GitHub プルリクエストの新しいより広いビューを導入します。特定のプルリクエストの詳細(メッセージ、ブランチ名、作成者、担当者、変更されたファイル、コミット、タイムラインなど)を表示し、コミット前のチェックの結果を表示します。また、IDE 内からのレビューの開始、レビューのリクエスト、コメントの添付、プルリクエストのマージなど、多くのアクションに役立ちます。

さらに学習したい方に

宣言または使用箇所に移動

Go to Declaration or Usages

宣言または使用箇所に移動アクション(Ctrl+Click / Ctrl+B)の動作は、ケースと IDE 設定によって異なります。

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

パフォーマンスの向上

いくつかの UI のフリーズとスローダウンが修正されました。エディターのパフォーマンス低下を回避するために、CLion はマクロ定義内で Enter キーを押すとバックスラッシュを挿入するようになりました。マクロ定義は新しい行で継続される可能性が非常に高いため、これにより IDE が冗長にアクティビティを再解析する必要がなくなります。

Rust プラグインの更新

Rust plugin update

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

もう 1 つの大きな更新は、Rust の MSVC ツールチェーンの初期デバッガーサポートの導入です。これで、Visual Studio ツールチェーン用に CLion にバンドルされている LLDB ベースのデバッガーを使用して、Rust の MSVC を使用する Windows で構築された Rust コードをデバッグできます。

その他の機能強化には、新しいリファクタリング(ファイルとトップレベルのアイテムの移動および定数の導入)、 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 Toolchain

IAR ツールチェーン

組み込みプロジェクトで IAR コンパイラー / ツールチェーンを使用する場合、CLion で使用できるようになりました。コンパイラー情報の収集は失敗しなくなりました。つまり、IAR ツールチェーンを使用するプロジェクトは正常にロードされ、CLion で機能します。

ここで注意すべき点がいくつかあります。

PlatformIO

PlatformIO

PlatformIO は、急速に普及している新世代のエコシステムです。組み込みプロジェクトでこれを活用するには、新しい CLion プラグインの PlatformIO(英語) を利用してください。

  • 新しいプロジェクトウィザードに PlatformIO プロジェクトタイプを追加します。
  • 対応する PlatformIO CMake ベースのプロジェクトを生成します。
  • デバッグおよびアップロード用の構成を自動的に作成します。
  • チップ上で CLion の PIO 統合デバッガーを使用してデバッグできます。

そして、はるかに ! 詳細については、公式ドキュメント(英語)を確認してください。

CUDA サポート

コードの解析とコード支援

CUDA C および C++ のコード(すべての CUDA 固有の拡張を含む)が正しく解析およびハイライトされるようになりました。これは、コードナビゲーション、コードドキュメント、その他のコードアシストアクションが CUDA コードで機能することを意味します。さらに、CLion は、カーネル呼び出しのために山括弧 括弧を完了することができます。

GitHub から ClaraGenomicsAnalysis(英語) プロジェクトのクローンを作成して、CUDA サポートに関して CLion が何を実行できるかを確認してみましょう。

New Project wizard

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

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

File extensions and CMake targets

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

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

さらに学習したい方に

Windows での開発

Clang-cl

Clang-cl

Windows の CLion で clang-cl を使用できるようになりました。バージョン 8.0 以降がサポートされています。

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

Debugger for the Visual Studio C++ toolchain

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

JetBrains によって開発された Visual Studio C++ ツールチェーン用の LLDB ベースのデバッガーが、このツールチェーンのデフォルトデバッガーになりました。すぐに使い始めることができます !

ネイティブビジュアライザーのバンドルサポートは Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB で明示的に有効にする必要があることに注意してください。

実行およびデバッグ構成

Custom targets for remote and embedded GDB

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

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

これらの構成をすでに作成している場合、CLion 2020.1 はプロジェクトフォルダーの projectFilesBackup ディレクトリに以前の実行 / デバッグ構成設定を保存し、これについて通知します。

Support for macros and path variables in Run/Debug configurations

実行 / デバッグ構成でのマクロとパス変数のサポート

CMake、カスタムビルド、Gradle ネイティブアプリケーション構成のプログラムの引数および作業ディレクトリフィールドでパス変数とマクロを使用できるようになりました。マクロは、次の値を取得できます。

  • 現在の CMake 実行構成のビルドディレクトリ。
  • 現在の CMake 実行構成の生成ディレクトリ。
  • プロジェクトファイルのディレクトリ。
  • そして他の多く。

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

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

Input redirection

入力のリダイレクト

入力をファイルからアプリケーションの標準入力にリダイレクトする必要がある場合は、これを行うことができます。 次からの入力をリダイレクトという構成の新しいフィールドを使用します。入る:

  • 相対パス(CLion にはワーキングディレクトリパスが付加されます)。
  • 絶対パス(リモート構成では再マッピングされます)。
  • またはマクロ(FilePrompt など)。

Clang ツール

DFA on Clangd

Clangd の DFA

CLion のデータフロー分析(DFA)は、コンパイラーが通常行うことのないことを行います。データがコードをどのように流れるかを分析し、その結果に基づいて潜在的な課題を検出します。常に false / true、無限ループ、欠落した return ステートメント、無限再帰などの条件をキャッチします。また、2020.1 により、DFA は Clangd ベースの言語エンジンに移行し、パフォーマンスの点でより正確で重くなくなりました。これはまだ作業中ですが、いくつかの良い結果がすでに利用可能です !

Clangd-only completion

クランドのみの補完

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

多数のさまざまな修正と拡張により、この新しいモードは正確で強力です。

さらに学習したい方に (英語)

ClangFormat

ClangFormat

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

.clang-format 構成ファイルを持たないプロジェクトで ClangFormat を有効にすると、CLion はそれを作成することを提案します。

Clang-Tidy

Clang-Tidy

プロジェクトで .clang-tidy 構成ファイルが検出された場合、CLion は Clang-Tidy の IDE 設定の使用を自動的にオフにするようになりました。動作は Settings | Editor | Inspections | C/C++ | General | Clang-TidyIDE 設定よりも .clang-tidy ファイルを優先するによって制御されます。

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

New naming settings

新しい命名設定

構造体メンバーフィールドとクラスメンバーフィールドの名前の設定が異なります。 Settings | Editor | Code Style | C/C++ | Naming Convention で確認してください。

Code folding

コードの折りたたみ

#pragma region および #pragma endregion は、CLion でコード折りたたみに使用できます。

リファクタリングの更新

Refactorings update

シグネチャーの変更リファクタリング(Ctrl+F6)を呼び出すと、CLion は関数のすべての使用箇所を更新します。 シグネチャーの変更ダイアログの新しいデフォルト値フィールドは、すべての使用箇所で使用されるパラメーターの値を指定する機能を提供します。空白のままにして、以前のようにデフォルト値型を使用します。

同じロジックと新しいデフォルト値フィールドが使用箇所からのパラメーターの作成クイックフィックスとパラメーターをコンストラクターに追加インテンションに適用されます。

エディター

Quick Documentation

クイックドキュメント

クイックドキュメント - ドキュメントをプレビューし、関数のシグネチャー、推論された型、マクロの置換に関する情報を取得するための汎用ツールが、マウスオーバーで利用できるようになりました。

Settings | Editor | Code Editingマウス移動でクイックドキュメントを表示する設定で制御できます。

JetBrains Mono and IntelliJ Light

JetBrains Mono および IntelliJ ライト

エディターのデフォルトフォントは、JetBrains によって作成された新しいオープンソースフォントである JetBrains Mono に変更されました。コードを読みやすくするために特別に設計されています。

新しいデフォルトライトテーマ– IntelliJ ライト–は、すべての異なるオペレーティングシステムの標準テーマになりました。必要に応じて、 表示 | スキームの切り替え | テーマを使用してデフォルト以外のテーマを選択します。

Split terminal sessions

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

CLion 2020.1 を使用すると、ターミナルセッションを縦または横に分割して、横に実行することができます。ターミナルからコンテキストメニューを呼び出して、分割ターミナルセッションを作成、ナビゲート、閉じることができます。

バージョン管理

Commit tool window and Commit dialog

新しいコミットツールウィンドウ

更新されたツールウィンドウは、変更されたファイルのリストと diff により多くのスペースを提供します。また、準備ができたときにコミットに変更を追加し、コミットメッセージを繰り返し作成して、ステージングされた変更のどれをどのコミットに入れるかを選択することもできます。

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

ここから対話的にリベース

更新された真に対話的なダイアログにより、次のことが可能になります。

  • ブランチの各コミットで実行するアクションを選択します。
  • 適用されたアクションを示すグラフを確認します。
  • コミットの詳細を表示します。
  • 差分を確認し、必要に応じて変更を確認またはリセットします。

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

バージョン管理ツールウィンドウは、Git ツールウィンドウと呼ばれるようになりました。Git の代わりにこれらのいずれかを使用している場合は、Subversion / Mercurial / Perforce と呼ばれるようになりました。

Git を手動でプレインストールする必要はもうありません ! Git を使用してプロジェクトを開くか、VCS からプロジェクトをインポートするときに、マシンに Git がない場合、CLion は Git をダウンロードしてインストールすることを提案します。

Rust プラグインの更新

Rust plugin update

LLDB サポートの改善により、IntelliJ Rust は列挙型とプリミティブ型を適切にレンダリングするようになり、呼び出しスタックにデマングルされた関数名も表示されるようになりました。

プラグインに含まれているもう 1 つの主要な更新は REPL 統合です。 ツール | Rust REPL からコンソールを呼び出し、プロトタイピングとコードのチェックに 1 行ずつ使用します。この統合により、構文のハイライトとコード補完に加えて、コマンド履歴、ソフトラップ、最後まですばやくスクロールするなどの便利なコンソールアクションが提供されます。

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

その他の機能強化には、未使用のローカル変数のハイライト、cfg 属性サポートの修正、および新しいリフトリターンインスペクションが含まれます。

その他の改善

  • すべてのリモート構成は、共通の統合された SSH 構成 UI を使用することでメリットを得ます。新しい SSH 構成がどこから発生したかに関係なく(リモートツールチェーン設定またはリモート GDB サーバー構成であっても)、Settings | Tools | SSH Configurations にエントリがあります。
  • ソースコードだけに集中したい場合は、 集中モード全画面モードを組み合わせた新しい Zen モードを選択できます。有効にするには、 表示 | 外観 | 禅モードにするを使用します。