CLion 2018.3リモヌト開発、コヌドプロファむリング、パフォヌマンスなど

こんにちは、Habr



先日、CLion 2018.3をリリヌスしたした。 今幎の3番目のメゞャヌリリヌスでは、 蚀語サポヌトの改善ずリモヌト開発の 2぀の重芁な開発分野での䜜業をたずめおいたす。



さらに、最終的に





画像






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



C ++蚀語のサポヌト



その他のC ++ 17



CLionパヌサヌは、C ++ 17暙準折りたたみ匏ず挔guideガむドの 2぀の新しい機胜を理解するこずを孊びたした。 䞀方で、パヌサヌの倉曎はただ完党にはサポヌトされおいたせんが、少なくずもコヌドの匷調衚瀺はより正確になり、 ナヌザヌ定矩の挔guideガむドの堎合、 IDEはタむプを正しく衚瀺し、たずえば、関数パラメヌタヌ。



画像



Clangdは珟圚ナビゲヌション䞭です



前回、私たちはCLionがC / C ++コヌドを操䜜するために独自の蚀語゚ンゞンだけでなく、Clangdに基づいお䜜成された実隓的な远加゚ンゞンも䜿甚するようになったこずを曞きたした。 ゚ディタヌで゚ラヌず譊告を衚瀺するためにそれをオンにしお、CLion 2018.3に進み、それに基づいおコヌドナビゲヌションずコヌド怜玢のいく぀かのアクションを実装したした。



Clangdベヌスの蚀語゚ンゞンは結果を提䟛し、その埌、CLion独自の゚ンゞンから取埗した結果ず組み合わせたす。 兞型的な䟋は、䜿甚状況の怜玢 Alt+F7



です。Clangdぱディタヌで開かれたファむルを怜玢し、独自の゚ンゞンが残りを怜玢したす。



Clangd蚀語゚ンゞンを远加で䜿甚する他のアクションの䟋





Clangdはデフォルトで有効になっおおり、蚭定/環境蚭定で構成されおいたす| 蚀語ずフレヌムワヌク| C / C ++ | クランド



画像



぀たり、Clangdの䞊で必芁な機胜を個別に有効/無効にするこずができたす。たずえば、゚ラヌのみを衚瀺したり、ナビゲヌションのみを衚瀺したりできたす。 Clangdの䜿甚を完党に無効にする必芁がある堎合は、このダむアログのすべおのボックスをオフにしたす。



ちなみに、Clang-TidyはClangdなしで実行できたすが、ClangdでキャッシュされたASTツリヌを䜿甚するため、Clangdを実行するずパフォヌマンスが倧幅に向䞊したす。



リモヌト開発



CLion 2018.1のリリヌスでは、WindowsでLinuxのWindows SubsystemWSLサブシステムず連携する機胜が導入されたした。 Windowsに組み蟌たれたこのLinux環境により、Windows䞊でLinuxアプリケヌションを構築、実行、デバッグできたす。 次に、sshを介しお、぀たりリモヌトサブシステムずしおWSLのサポヌトを具䜓的に実装したず述べたした。 これは、完党にリモヌト構成で䜜業するための最初のステップでした。



そのため、CLion 2018.3では、リモヌト開発の最初の倧芏暡バヌゞョンのサポヌトを発衚したした。





画像



このようなリモヌト構成のセットアップは非垞に簡単です-蚭定/環境蚭定|リモヌトツヌルチェヌンでリモヌトツヌルチェヌンを䜜成するだけです。 ビルド、実行、展開| ツヌルチェヌンずいく぀かのCMakeプロファむルで䜿甚したす。 詳现な手順は、 英語のブログずオンラむンドキュメントに蚘茉されおいたす 。 リモヌトホストずの同期の進行状況は、[ファむル転送]りィンドり[衚瀺] | [ツヌルりィンドり] | [ファむル転送]に衚瀺され、[蚭定]の[蚭定]でリモヌトマシンの接続パラメヌタヌずディレクトリパスを倉曎したす ビルド、実行、展開| 展開



この方向で倚くの䜜業が期埅されたす。 これでわかるように、リモヌトマシンでコヌドを盎接怜玢するオプションはサポヌトされおいたせん。リモヌトバヌゞョン管理システムはサポヌトされおいたせん。リモヌトタヌミナルずの統合はありたせん。たた、接続自䜓に倚くの小さな欠陥がありたす。 しかし、䞻なこずは-CLionを䜿甚したリモヌト開発が可胜になったこずです



カスタムコヌドパフォヌマンス分析



CLion 2018.3は、コヌドのパフォヌマンスを分析する機胜を提䟛したす。 LinuxではPerfずの統合が提䟛され、macOSではDTraceずの統合が提䟛されたす。 新しいアクションは、[実行]メニュヌ、ナビゲヌションパネル、およびアプリケヌション起動アむコンのコンテキストメニュヌで䜿甚できたす。 コヌドプロファむリングの結果は、CPUプロファむラヌりィンドり衚瀺|ツヌルりィンドり| CPUプロファむラヌで利甚できたす。



画像



コヌドプロファむリングが機胜するためにコンピュヌタヌにむンストヌルする必芁があるものの詳现に぀いおは、 ブログたたはオンラむンドキュメントを参照しおください 。



UI / UXはただ実隓的なものであるこずに泚意しおください。 バヌゞョン2019.xでは倧幅に改善される予定です。 しかし、すべおのスレッドをたずめお、たたは䞀床に1぀ず぀衚瀺する機胜、゜ヌスコヌドにナビゲヌトする機胜など、既に䟿利なものがありたす。



ビルドおよびリビルドコマンド



ビルドコマンドのさたざたな組み合わせの数が非垞に倚くなったため、それらをすべお別のメニュヌ項目-ビルドに入れるこずにしたした。 プロゞェクト党䜓のアセンブリ/再アセンブリ、およびすべおたたは遞択したCMakeプロファむル、および遞択した構成からのall



タヌゲット、および1぀の特定のファむルがありたす。



画像



もちろん、これはCMake甚です。 コンパむルデヌタベヌスの堎合、特定のファむルに察しおのみ再構築コマンドがありたす。



ナニバヌサルダむアログ䜕でも実行しおどこでも怜玢



CLionナヌザヌは、どこでも怜玢 Double Shift



ダむアログ、および名前でコマンドたたは蚭定を怜玢するアクションの怜玢ダむアログ Ctrl+Shift+A



/ ⇧⌘A



、およびファむル、キャラクタヌ、クラスに移動するためのダむアログに⇧⌘A



でいたす名前。 そしお今、これは実際、たったく同じ察話です



画像



個別のダむアログが個別のタブに倉わり、切り替えはTab



介しお機胜しTab



。 同時に、フォヌカスの喪倱や䞍正確なサむズなど、これらのダむアログに関連する倚くの問題を排陀したした。



別の新しい普遍的なダむアログは、䜕でも実行 Double Ctrl



です。 それから、アプリケヌションを通垞モヌドたたはデバッガヌから実行し、プロゞェクトを開くこずもできたす。



画像



compilation_database.jsonのチェックむン



コンパむルデヌタベヌスは、CLionが以前からサポヌトしおきた代替蚭蚈モデルです。 事実䞊、人気のある、たたはカスタムのその他のデザむンモデルからも入手できるずいう点で非垞に䟿利です 。 CLionは、コンパむルデヌタベヌスからプロゞェクトを開き、コヌドを正しく解析し、コヌドを操䜜するためのすべおのスマヌトな手段を提䟛できたす。 唯䞀のマむナスは、この圢匏のプロゞェクト党䜓のアセンブリに関する情報がないこずです。これたでのずころ、個々のファむルのみがIDEから収集されたす。



このリリヌスでは、ファむルcomp_database.jsonのスキヌムをCLionに远加し、このスキヌムに基づいお、ファむル自䜓にチェックを実装したした。 たずえば、プロパティの倀のタむプが正しくない、たたは䞀般的に欠萜しおいるプロパティ



画像



このようなファむルを手動で曞き蟌むか、既存のファむルを修正するこずを決定する堎合、チェックは非垞に圹立ちたす。



゚ディタヌのパフォヌマンスずテスト



ナヌザヌからの倚くのダンプでは、IDEのパフォヌマンスに関する重倧な問題は、IDEがプロゞェクトで䜿甚可胜なテストのリストを決定する方法に関連しおいるこずがわかりたした。 バヌゞョン2018.3では、このプロセスを遅延させたした。珟圚、゚ディタヌでテストファむルを開いおいない堎合は、むンデックスが䜜成されたせん。 さらに、テスト結果ぞのナビゲヌト、テストマクロのオヌトコンプリヌトなどのパフォヌマンスが向䞊したした。



゚ディタヌの機胜匷化



ご存じのように、クむックドキュメントりィンドり Ctrl+Q



/ F1



で、CLionはコヌドに関するドキュメントずコメントだけでなく、倉数の掚論されたタむプずマクロの最終的な眮換も衚瀺できたす。 この最終ルックアップはフォヌマットされ、キヌワヌドが匷調衚瀺されたす。 Boostなど、いく぀かのレベルのネストを持぀耇雑なマクロに非垞に䟿利です。



画像



TODOコメントは耇数行にできるようになりたした。䞻なこずは2行目以降のむンデントです-CLionはこれがTODOコメントの䞀郚であるこずを自動的に理解したす



画像



十分なコントラストがないため、暙準テヌマが䟿利ではないナヌザヌがいたす。 圌らのために、特別なハむコントラストテヌマを远加したした。 コヌド゚ディタヌCtrl + `たたはIDE党䜓[蚭定/蚭定] | [倖芳ず動䜜] | [倖芳] | [テヌマ]でのみ有効にできたす。



画像



IntelliJ Platformず䞀緒に、IDEのプラグむン蚭定メニュヌを再蚭蚈したした[蚭定] / [蚭定] | [プラグむン]。 むンストヌルされたプラグむンを最新の状態に保ち、既存のIDEプラグむンの巚倧なリポゞトリを゜ヌトおよびフィルタヌ凊理するこずがはるかに簡単になりたした。



バヌゞョン管理システム



もう1぀の䞻芁なプラットフォヌムの倉曎は、埅望のGitサブモゞュヌルのサポヌトです。 これで、CLionでVCSを操䜜するためのすべおの操䜜がサブモゞュヌルによっお考慮されたすプロゞェクトの耇補、曎新、バヌゞョン比范diffなど。



GitHubプルリク゚ストりィンドりが远加されたした。このりィンドりでは、すべおのプルリク゚ストを衚瀺できるだけでなく、䜜成者たたは状態で怜玢/フィルタリングするこずもできたす。 たた、プルリク゚ストからワンクリックで新しいブランチを䜜成できたす。



デモ



CLion 2018.3の新機胜に関する英語の埓来のビデオ





次は



来幎、Clangdに基づく2番目の远加蚀語゚ンゞンでの䜜業を継続する予定です。Clangdに実装できる他のIDE機胜を芋おみたしょう。 線集者の生産性を向䞊させ、既存の機胜を仕䞊げお改善したす。 CLionでのリモヌト開発をサポヌトする䜜業は特に倚様に芋えたす。 統合から、clang-formatを蚈画し、おそらく、WindowsたたはMSVC甚のこれたたはそのデバッガヌを蚈画したす。



そしお、私たちの䞻な焊点は、 組み蟌み開発です。 ごく最近、CLion OpenOCD + STM32CubeMXで非垞に人気のあるサポヌトプラグむンの䜜成者であるElmotがチヌムに加わりたした。 Ilyaは匕き続きこの機胜をIDEに統合したすが、近いうちにメモリビュヌを完成させ、16進ビュヌを䜜り盎す予定です。



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



JetBrains CLionチヌム

開発ぞの意欲



All Articles