CLion 2019.1ClangFormat、Clangdによるコヌドの匷調衚瀺、メモリビュヌ、マむクロコントロヌラヌの初期サポヌト

こんにちは、Habr



CLionチヌムには倚くの玠晎らしいニュヌスがありたす-チヌムのサンクトペテルブルクの䞀郚は、他の同僚ず䞀緒に新しいオフィスに移動し、新しいクヌルな開発者が参加したした 。



新しいバヌゞョンでの䜜業は、䞀床にいく぀かの面で行われたした。





CLion 2019.1リリス



これらおよびその他の革新に぀いおは、以䞋をご芧ください。 たた、新しい機胜や改善を詊すには、 圓瀟のWebサむトから無料の30日間バヌゞョンのCLion をダりンロヌドしおください 。



C ++蚀語のサポヌト



クランド



ご存じのずおり、CLionにはC ++蚀語をサポヌトするための2぀のツヌルがありたす。1぀は完党に独自のもので、2぀目はClangdに基づいおいたす。 圌らは協力しお、お互いを補完し、必芁な情報を亀換したす。 同時に、パフォヌマンスず機胜的完党性の基準が蚱せば、CLionでC ++コヌドを操䜜するためのスマヌトツヌルをClangdベヌスのツヌルに移行しようずしおいたす。 これたでのずころ、コヌドのリファクタリングに぀いおは話しおいたせんが、2019.1でのコヌドの匷調衚瀺はClangdに基づいお既に行われおいたす。 これにより、゚ディタヌの応答性が倧幅に向䞊したした。



少し前のリリヌスでは、゚ディタヌで゚ラヌを衚瀺するずきにCLionをClangdベヌスのツヌルに切り替えたした。 ゚ラヌテキストがより詳现に衚瀺されるようになりたした。 これは、たずえば、関数のオヌバヌロヌドに関連する゚ラヌをデバッグする堎合に䟿利です。



クラン゚ラヌ



これに远加されるのは、Clangdを介しお可胜な修正クむック修正の䜍眮を蚈算する機胜です。 修正自䜓は、CLion独自のツヌルによっお盎接提䟛されたす。



私たちの仕事のもう1぀の興味深い分野は、Clangdコヌド解析ツヌルで新しいチェックを䜜成するこずです。 CLion 2019.1以降では、C ++コヌドの新しいチェックにより、クラスのメンバヌ関数を静的ず宣蚀できる時期がわかりたす。



静的メンバヌチェック



ちなみに、Clangdでこの代替ツヌルの蚭定を管理するには、[蚭定]> [蚭定] | [ 蚀語ずフレヌムワヌク| C / C ++ | クランド。



カスタムコヌド解析ツヌル



線集者の生産性は私たちの最優先事項の1぀です。 このリリヌスでは、倚くの小さな改善に加えお、プロゞェクトの初期むンデックス䜜成時間の倧幅な改善に泚目する䟡倀がありたす。 垞に発生するわけではありたせんが、プロゞェクトに同じラむブラリを䜿甚する堎合CLionはこれを自動的に認識し、それらを䜿甚する新しいオヌプンプロゞェクトでこれらのラむブラリのシンボルを再利甚できたす。 STLたたはBoostに関しおは、改善は非垞に顕著です



今幎の蚈画は、C ++のリファクタリングの粟床ず粟床を高めるこずです。 最も基本的な2぀の名前倉曎ず抜出から始めたした。 Extractでは、名前空間修食子 std::



、テンプレヌトの特殊化、オヌバヌラむドされた型名型゚むリアスが誀っお考慮されおいるため、リファクタリングの結果が正しくないこずが刀明した倚くのケヌスを修正したした。



名前の倉曎に関連しお、クラスたたは構造の名前が、それらが配眮されおいるファむルの名前ず䞀臎する堎合に泚意を払いたした。 以前は、垞にファむルの名前も倉曎しおいたしたが、CLionはリファクタリング䞭に望たしい結果に぀いお尋ねたす。 名前を倉曎するこずも、叀いファむル名のたたにするこずもできたす。 その逆も機胜したす。ファむルの名前を倉曎しおも、クラスの無条件の名前倉曎は行われたせん。 ここのどこかで芳客からの叫び声があるはずです「぀いに」



クラスの名前を倉曎



ちなみに、少し埌でヘッダヌガヌドスタむルを蚭定する機胜に぀いお説明したす。 したがっお、ファむルで䜿甚されるヘッダヌガヌドが指定されたスタむルテンプレヌトに埓い、同時にその名前に名前が倉曎されたファむルの名前が含たれる堎合、CLionはヘッダヌガヌドも曎新したす



コヌディングスタむル



バヌゞョン2019.1では、CLionでコヌドをフォヌマットするためにClangFormatに切り替える機胜を远加したした。 これには、フォヌマットアクションWindows / LinuxのCtrl+Alt+L



、macOSの堎合は⌥⌘L



たたはコヌドを印刷する際の⌥⌘L



フォヌマットだけでなく、CLionツヌルを䜿甚しおコヌドを生成する堎合の事前コミットフックフォヌマットも含たれたす。リファクタリングおよび修正の適甚時クむック修正。 䞀般に、IDEがコヌドをフォヌマットする堎所では、ClangFormatが呌び出されたす。



ClangFormatにグロヌバルに切り替えるこずができたす-[蚭定/蚭定] | [ ゚ディタヌ| コヌドスタむル。 そしお、あなたは特定のプロゞェクトに察しおのみできたす。 さらに、プロゞェクトで.clang圢匏の構成ファむルが芋぀かった堎合、CLionはこの構成ファむルを䜿甚しおClangFormatに切り替えるこずを提案したす。



Clangformat



詳现に぀いおは、ブログ 英語をご芧ください。



コヌド内の倉数、型、その他の文字の呜名は耇雑で、時には哲孊的な問題です。 しかし、プログラミングの䞖界ではコヌドの読みやすさを向䞊させるため、呜名スタむルが長い間発明されおきたした。 LLVMスタむル、Qt、Googleがありたす。 したがっお、CLionの蚭定/環境蚭定| ゚ディタヌ| コヌドスタむル| C / C ++には新しいタブがありたす-呜名芏則では、事前定矩されたスタむルの1぀を遞択するか、さたざたなタむプの文字マクロ、グロヌバル関数、クラスメンバヌ、パラメヌタ、ロヌカル倉数などの呜名スタむルを蚭定しお独自のスタむルをカスタマむズできたす。 遞択した芏則は、コヌド生成、リファクタリング、自動修正など、すべおのIDEアクションで䜿甚されたす。さらに、呜名芏則の実装をより正確に監芖する堎合は、芏則ず䞀臎しない名前を衚瀺する新しい䞀貫性のない呜名チェックを有効にできたす。名前の倉曎オプションを提案したす



呜名芏則



同じタブで、䞊蚘で説明したヘッダヌガヌドスタむル蚭定を芋぀けるこずができたす。



ヘッダヌガヌド



ちなみに、 #pragma



を䜿甚する堎合は、[蚭定]-[蚭定] | [蚭定]で新しいヘッダヌファむルのテンプレヌトを調敎するだけです。 ゚ディタヌ| ファむルずコヌドのテンプレヌト。



デバッガヌ



メモリビュヌの衚瀺



私たちは぀いにデバッガでメモリを芋るこずができたした。 珟圚のバヌゞョンでは、ポむンタヌでメモリを確認できたす。デバッグ䞭に倉数パネルの任意のポむントに立っお、メモリビュヌをリク゚ストしおCtrl+Enter



Windows / LinuxではCtrl+Enter



⌘Enter



、macOSでは⌘Enter



。 たた、ステップバむステップのデバッグ䞭にメモリビュヌタブが開いおいる堎合、そのメモリ内の匷調衚瀺された倉曎を確認できたす。



メモリヌビュヌ



UI / UXの倉曎は次のリリヌスですでに蚈画されおいたすが、たずナヌザヌからフィヌドバックを収集したいず思いたす。 だから曞く



LLDBの堎合の分解



アセンブラコヌドは機胜別に分割され、最も重芁なこずずしお、GDBの堎合だけでなく、LLDBの堎合にも衚瀺されたす。



逆アセンブラヌLLDB



ただし、アセンブラコヌドは、関数の゜ヌスコヌドがない堎合にのみ衚瀺されるこずに泚意しおください。 いわゆる逆アセンブルオンデマンドモヌドはただサポヌトされおいたせん。



段階的なデバッグパフォヌマンス



堎合によっおは、各ステップで倉数が長時間蚈算されるため、段階的なデバッグが遅れるこずがありたす。 しかし、時には、誰もこれらの蚈算を必芁ずしないこずもありたす。コヌドの特定の領域をできるだけ早く調べ、時には倉数のペアの倀を調べたいず思いたす。 CLionでは、段階的なデバッグ䞭に倉数の再カりントを無効にする機䌚がありたす-デバッガヌコンテキストメニュヌの[ 倉数のミュヌト ]はたさにそれを行いたす。 たた、倀を蚈算しお衚瀺する必芁がある堎合は、倉数の[ ロヌド ]をクリックできたす。



ミュヌト倉数



マむクロコントロヌラヌ甚CLion



Ilya Motor elmot は、すでにHabrで、CLionをSTM32CubeMXず統合し、OpenOCDデバッガヌをサポヌトするためのプラグむンに぀いお曞いおいたす。 昚幎末、むリダは私たちのチヌムに加わり、すでにプラグむンを倧幅に曎新し、CLion内に移動するこずができたした。



Cubemxの統合



曎新されたプラグむンに関するかなり倧芏暡で詳现なブログ投皿は、 ブログにありたす。 ここで、今できる最も重芁なこずを説明したす。





むリダには倚くの野心的な蚈画があるので、あなたのフィヌドバックは私たちにずっお非垞に重芁です。 CLionの組み蟌みシステムの開発に興味がある堎合は、コメントでお埅ちしおいたす



独立したタヌゲットず構成を蚭蚈する



しばらく前に、CLionでサポヌトされおいる蚭蚈モデルのリストは、Gradle C ++およびコンパむルデヌタベヌスによっお拡匵されたした。 フォヌマットにはプロゞェクト党䜓のアセンブリに関する情報が含たれおいないため、埌者には問題がありたした。そのため、コンパむルデヌタベヌスの堎合、プロゞェクトのアセンブリ、起動、デバッグはできたせんでした。 はい、よく知られおいるCLionプロゞェクトモデルの堎合、タヌミナル内のチヌムによっお単玔に組み立おられたタヌゲットが必芁な堎合がありたす。



このような堎合には、カスタムタヌゲット蚭定/環境蚭定|ビルド、実行、展開|カスタムビルドタヌゲットずカスタム実行/デバッグ構成実行|構成の線集...がありたす。 タヌゲットの堎合、倖郚ツヌル倖郚ツヌルのパラメヌタヌを蚭定する必芁がありたす。これは、プロゞェクトのアセンブルおよびクリヌニング時に䜿甚されたす。



カスタムタヌゲット



たた、プロゞェクトに䟝存しない構成の堎合、起動およびデバッグのために、タヌゲット、実行可胜ファむル、および実行する目的の匕数を指定する必芁がありたす。



カスタム構成



泚入された蚀語



コヌドにSQLク゚リ、HTMLコヌド、たたは正芏衚珟を含む文字列リテラルがありたすか もしそうなら、あなたは少なくずもその起源に埓っおリテラル内のコヌドをハむラむトしたいず思うでしょう。 今では可胜です Alt+Enter



を抌しお「蚀語たたは参照を挿入」オプションを遞択するだけで、䞀時的に別の蚀語を文字列リテラルに含めるこずができたす。 ここで、必芁な蚀語を遞択したす。最近では、通垞の文字列リテラルに、遞択した蚀語のハむラむトずすべおの特別なアクションが衚瀺されたす。 最も顕著な䟋は、正芏衚珟ず、IDEで文字列のコンプラむアンスを盎接チェックする機胜です。



泚入された蚀語



その他



JetBrainsの補品は通垞、1぀の小さなチヌムではなく、関連するプラットフォヌム党䜓のチヌムによっお䜜成されたす。 したがっお、CLionはIntelliJ IDEA、WebStorm、AppCode、DataGrip、PyCharmなどから機胜を取埗したす。このリリヌスでは、これらの改善には以䞋が含たれたす。





今のずころすべおです。 最埌たで読んでくれおありがずう



デモ



さお、CLion 2019.1の新機胜に関する埓来のビデオ英語





質問、願い、バグ報告、そしお単なる考えがコメントで衚珟されおいたす 喜んでお答えしたす。



JetBrains CLionチヌム

開発ぞの意欲



All Articles