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の課題が解決されます。