CLion の新機能

CLion の新機能

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 を使用する場合、プロジェクトの場所に応じて GZ 実行可能ファイルを 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 モードを選択できます。これを有効にするには、 表示 | 外観 | Zen モードに入るを使用します。

CLion 2019.3 の新機能

IDE パフォーマンスの向上

この CLion のリリースは、品質をゴールにしており、多くのパフォーマンスが改善されています。主な機能強化は、コード補完、名前変更リファクタリング、シンボルの構築 / 更新ステップの最適化、UI フリーズの排除に影響します。

さらに学習したい方に

Clangd ベースのコード補完

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

refactoring

名前変更のリファクタリングの迅速化

CLion の名前変更リファクタリングは、コードの使用箇所だけでなく、文字列リテラルとコメントの使用箇所も名前変更できるため、非常に強力です。それでもコードの使用箇所のみの名前を変更したい場合は、実際の検索の前にこの決定を行うように依頼できるため、はるかに高速になりました。(これを使用するには、Settings | Editor | General | Refactorings | Enable in-place modeオフにします。)

Ninja および CMake の他のジェネレーター

Ninja Gen

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

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

さらに学習したい方に

CMake のデフォルト

CMake Defaults

新しい CLion プロジェクトの構成プロセスを簡略化するために、1 つ以上のデフォルトの CMake プロファイルを構成できます。これは、すべての新しいプロジェクトで使用されます。 File | Other Settings | Settings for New Projects …を使用

その他の CMake サポートの改善

  • 他の一部が失敗している場合でも、CMake の有効な構成を再ロードできるようになりました。
  • CMake 3.15 は CLion 2019.3 にバンドルされています。
  • コンパイラが -fpch-preprocess フラグをサポートしていない場合でも、プロジェクトは CLion 2019.3 に正常にロードされます。詳細については、このブログ投稿を参照してください。

デバッガー

remote gdb

リモート GDB サーバー

ローカルで実行されている CLion からリモートマシンの実行可能ファイルをデバッグする場合は、リモート GDB サーバー構成を使用できます。CLion は実行可能ファイルをアップロードし、gdbserver でプログラムを起動するため、手動で実行する必要はありません。

さらに学習したい方に

lldb_printers

LLDB 9 以上のプリティープリンター

CLion 2019.3 では、macOS および Linux にバンドルされている LLDB が v9.0 に更新されました。これに加えて、バンドルされた LLDB プリティプリンターで大規模なクリーンアップが実行され、関連する一連の課題がすべて修正されました。

libc ++ と libstdcxx が macOS と Linux でどのように処理されるかを確認する

lldbinit

プロジェクトルートから .gdbinit / .lldbinit を読み取ります

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

この動作を有効にするには、ホームファイルで明示的に許可する必要があることに注意してください。LLDB および GDB でこれを行う方法を参照してください。

C++20 のコンセプト

Clangd ベースのコード補完

C++20 で提供される最大の機能の 1 つは間違いなくコンセプトです。Clang のコンセプトサポートの作成者と協力して、CLion 2019.3 にコンセプトを導入しました。このサポートは、コードの解析と強調表示(Clangd ベースの言語エンジンによって行われます)だけでなく、次の機能も備えています。

  • 未使用のコンセプトインスペクション。
  • std::is_base_of <MyBase、T> および std::is_same <その他、T> によって制約されるタイプの補完を含むコード補完
  • 名前変更リファクタリング。
  • 定義と使用箇所の検索に移動します。

さらに学習したい方に

コード解析

virtual call

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

仮想関数がまだ初期化されていないリソースや既に破棄されているリソースにアクセスする状況を防ぐため、CLion はコンストラクターまたはデストラクターから呼び出された仮想関数を検出する新しいインスペクションを取得します。

Spelling in Doxygen

スペルチェッカー

スペルチェッカーは、コードを正確で読みやすく保つのに役立ちます。CLion は、C/C++ コード用に長い間使用していました。v2019.3 では、CMake および Doxygen のコメントで有効にしました。

コードカバレッジ

Coverage

「構成の実行中にこのステートメントが実行されましたか?」という質問をしたことがある場合、コードを測定するステートメントカバレッジを探していることを意味します。CLion 2019.3 は、llvm-cov / gcov ツールとの統合のおかげです。

単体テストの実行または通常の構成の実行で取得できます。結果は、カバレッジツールウィンドウで、またはエディターの左の余白にある色の表示を介して利用できます。

さらに学習したい方に

エディター

Go to Header/Source action

ヘッダー / ソースアクションに移動

ヘッダー / ソースファイルを切り替える新しいアクションが追加されました。Go to Related Symbol よりも、多くの C/C++ ケースでより正確で迅速です。

ナビゲートする複数のオプションが 500 ミリ秒以内に識別される場合、CLion は新しいアイテムが追加された対話的なポップアップを表示し、ナビゲート先を選択できます。

必要に応じて、関連シンボルへ移動からこの新しいアクションへのショートカットを再マップするための組み込みメカニズムもあります。

さらに学習したい方に

Microsoft

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

CLion では、一連のフォーマットオプションと命名規則のルールを構成できます。または、代わりに、事前定義されたスタイルの 1 つからこれらの設定を継承できます。CLion 2019.3 では、Microsoft の定義済みの書式と命名スタイルをリストに追加しました。

WSL2

WSL2

Windows Subsystem for Linux は、Linux ターゲットプラットフォーム用の Windows 上で開発する便利な方法を提供します。CLion は WSL 環境をネイティブでサポートし、WSL バージョン 2 をサポートするようになりました。CLion の構成プロセスは、WSL v1 と WSL v2 でまったく同じです。

さらに学習したい方に

Rust プラグインの更新

Rust

IntelliJ Rust の最大の更新の 1 つは、cfg 属性の初期サポートです。現在、条件付きで無効化されたブロックはグレー表示され、解決およびコード分析から除外されます。サポートされている cfg オプションには、unix , windows および target_os があります。

広く使用されているクイックフィックス、未解決シンボル用の自動インポートは、メンバーを実装する明示的に型を指定する残りのパターンを追加する、およびその他のコード生成アクションを呼び出すと自動的に機能するようになりました。

その他の変更には、すでにいくつかのリリースのプラグインの一部である Rust コードのコードカバレッジ、型ヒント用の便利なインタラクティブインレイ、および include! マクロのサポートが含まれます。

その他の変更点

  • VCS サポート:クローンダイアログ(VCS | Get from Version control)が作り直されました。ダイアログからログインできるようになりました。すでにログインしている場合は、アカウントまたは組織別にグループ化されたすべてのリポジトリのリストがすぐにプレビューされます。
  • スクロールバーをより見やすくする新しいオプションが追加されました– Settings | Appearance & Behavior | Appearance | Use contrast scrollbars
  • 更新された JetBrains ランタイムでは、多くの UI の課題が解決されます。