CLion 2018.3: développement à distance, profilage de code, performances et plus

Bonjour, Habr!

L'autre jour, nous avons publié CLion 2018.3. La troisième version majeure de cette année résume notre travail dans deux domaines de développement importants: l' amélioration du support linguistique et le développement à distance .

De plus, nous avons enfin:

  • ajout d'outils de profilage de code;
  • refait les commandes dans l'éditeur pour assembler / réassembler du code au niveau d'un fichier, de plusieurs cibles, ou du projet entier;
  • Avec d'autres IDE basés sur la plateforme IntelliJ, ils ont ajouté la prise en charge des sous-modules Git et des demandes d'extraction GitHub;
  • amélioration des moyens d'accès universel aux possibilités d'IDE (accessibilité).

image

En savoir plus sur ces innovations et d'autres ci-dessous. Et pour essayer de nouvelles fonctionnalités et améliorations, téléchargez la version gratuite de 30 jours sur notre site Web .

Prise en charge du langage C ++


Plus C ++ 17


L'analyseur CLion a appris à comprendre deux nouvelles fonctionnalités des expressions de pliage standard C ++ 17 et des guides de déduction . D'une part, les modifications de l'analyseur ne sont pas encore complètement prises en charge, mais au moins la mise en évidence du code sera plus correcte, et pour les cas de guides de déduction définis par l'utilisateur, l' EDI affichera même correctement le type et vous pouvez le voir, par exemple, lors de l'appel d'informations sur paramètres de fonction.

image

Clangd est maintenant en navigation


La dernière fois, nous avons écrit que CLion utilise désormais non seulement son propre moteur de langage pour travailler avec du code C / C ++, mais aussi un moteur expérimental supplémentaire basé sur Clangd. En l'activant pour afficher les erreurs et les avertissements dans l'éditeur, nous sommes passés à autre chose et dans CLion 2018.3, nous avons implémenté certaines actions de navigation et de recherche de code sur sa base.

Le moteur de langage basé sur Clangd fournit des résultats qui sont de toute façon ensuite combinés avec les résultats obtenus à partir du moteur CLion. Un exemple typique est Find Usages ( Alt+F7 ): Clangd recherche les fichiers ouverts dans l'éditeur et notre propre moteur recherche les autres.

Exemples d'autres actions qui utilisent en outre le moteur de langage Clangd:

  • Aller à la déclaration ( Ctrl+B / ⌘B ) / Aller à la définition ( Ctrl+Alt+B / ⌥⌘B )
  • Mettre en surbrillance toutes les inclusions du symbole sur lequel se trouve le curseur
  • Documentation rapide ( Ctrl+Q / F1 )

Clangd est activé par défaut et est configuré dans Paramètres / Préférences | Langues et cadres | C / C ++ | Clangd:

image

Autrement dit, vous pouvez activer / désactiver indépendamment les fonctionnalités nécessaires au-dessus de Clangd - par exemple, en affichant uniquement les erreurs ou uniquement la navigation. Si vous devez désactiver complètement l'utilisation de Clangd, décochez toutes les cases de cette boîte de dialogue.

Et en passant, Clang-Tidy peut être exécuté sans Clangd, mais le lancement via Clangd améliore considérablement les performances car il utilise l'arborescence AST mise en cache dans Clangd.

Développement à distance


La version de CLion 2018.1 a introduit la possibilité sous Windows de fonctionner avec le sous-système Windows Subsystem for Linux (WSL). Cet environnement Linux, intégré à Windows, vous permet de créer, d'exécuter et de déboguer des applications Linux sur Windows. Nous avons alors dit que nous avions spécifiquement implémenté la prise en charge de WSL via ssh, c'est-à-dire en tant que sous-système distant. C'était la première étape pour travailler avec des configurations complètement distantes.

Et donc dans CLion 2018.3, nous avons annoncé la prise en charge de la première grande version du développement à distance:

  • Sur la machine locale sur laquelle CLion s'exécute, il peut s'agir de Linux, Windows ou macOS.
  • Sur une machine distante, où CLion va construire votre application, l'exécuter et la déboguer, exécuter des tests, jusqu'à présent, il ne peut y avoir que Linux.
  • Il est supposé que le code se trouve sur la machine locale. CLion lui-même le synchronise avec la machine distante et récupère les chemins de recherche d'en-tête vers le local pour résoudre rapidement le code dans l'éditeur. La synchronisation se fait via rsync pour Linux ou macOS en tant que machines locales, et via sftp et gzip pour Windows.
  • Il ne fonctionne jusqu'à présent que pour les projets sur CMake.

image

La configuration d'une telle configuration à distance est très facile - il vous suffit de créer une chaîne d'outils à distance dans Paramètres / Préférences | Construction, exécution, déploiement | Chaînes d'outils et utilisez-le dans certains profils CMake. Des instructions détaillées figurent dans notre blog en anglais et notre documentation en ligne . La progression de la synchronisation avec l'hôte distant s'affiche dans la fenêtre Transfert de fichiers (Affichage | Fenêtres d'outils | Transfert de fichiers) et modifiez les paramètres de connexion et les chemins de répertoire sur la machine distante dans Paramètres / Préférences | Construction, exécution, déploiement | Déploiement

Beaucoup de travail est attendu dans ce sens. Maintenant, comme vous pouvez le voir, les options de localisation du code directement sur la machine distante ne sont pas prises en charge, il n'y a pas de prise en charge du système de contrôle de version à distance, il n'y a pas d'intégration avec le terminal distant et il y a beaucoup de défauts mineurs dans la configuration de la connexion elle-même. Mais l'essentiel est que le développement à distance avec CLion est désormais possible!

Analyse des performances du code personnalisé


CLion 2018.3 offre la possibilité d'analyser les performances du code. Sous Linux, l'intégration avec Perf est fournie; sous macOS, avec DTrace . La nouvelle action est disponible dans le menu Exécuter, dans le panneau de navigation et dans le menu contextuel des icônes de lancement de l'application. Les résultats du profilage de code sont disponibles dans la fenêtre CPU Profiler (Affichage | Fenêtres d'outils | CPU Profiler).

image

En savoir plus sur ce que vous devez installer sur votre ordinateur pour que le profilage de code fonctionne, lisez le blog ou la documentation en ligne .

Il convient de noter que l'interface utilisateur / UX est encore quelque peu expérimentale. Il est prévu de s'améliorer considérablement dans les versions 2019.x. Mais il y a déjà des choses utiles, comme la possibilité de voir tous les threads ensemble ou un à la fois, la possibilité de naviguer jusqu'au code source, etc.

Créer et reconstruire des commandes


Le nombre de diverses combinaisons de commandes de construction a tellement augmenté que nous avons décidé de les mettre toutes dans un élément de menu distinct - Construire. Il y a l'assemblage / réassemblage de l'ensemble du projet, et la cible all de tout ou du profil CMake sélectionné, et la configuration sélectionnée, et un fichier spécifique:

image

Ceci, bien sûr, est pour CMake. Pour une base de données de compilation, il n'y aura qu'une commande de reconstruction pour un fichier particulier.

Dialogues universels: exécutez n'importe quoi et recherchez partout


Les utilisateurs de CLion connaissent depuis longtemps la boîte de dialogue Rechercher partout ( Double Shift ), ainsi que la boîte de dialogue Rechercher une action ( Ctrl+Shift+A / ⇧⌘A ) pour rechercher une commande ou un paramètre par nom, et les boîtes de dialogue permettant de naviguer vers un fichier, un symbole ou une classe par leur nom. Et maintenant, c'est, en fait, le même dialogue!

image

Des boîtes de dialogue distinctes sont transformées en onglets séparés, la commutation des travaux via Tab Dans le même temps, nous avons éliminé un certain nombre de problèmes associés à ces boîtes de dialogue, notamment la perte de focus et les tailles incorrectes.

Une autre nouvelle boîte de dialogue universelle est Run Anything ( Double Ctrl ). À partir de là, vous pouvez exécuter l'application en mode normal ou sous le débogueur, et également ouvrir n'importe quel projet:

image

Vérifie dans compilation_database.json


La base de données de compilation est un modèle de conception alternatif que CLion prend en charge depuis un certain temps. Il est très pratique en ce sens que vous pouvez l'obtenir à partir de pratiquement n'importe quel autre modèle de conception, populaire ou même personnalisé. CLion peut ouvrir des projets à partir de la base de données de compilation, analyser correctement le code et fournir tous les moyens intelligents de travailler avec le code. Le seul inconvénient est le manque d'informations sur l'assemblage de l'ensemble du projet dans ce format, jusqu'à présent, seuls les fichiers individuels seront collectés à partir de l'IDE.

Dans cette version, nous avons ajouté un schéma pour les fichiers comp__database.json à CLion et, sur la base de ce schéma, nous avons déjà implémenté des vérifications dans le fichier lui-même. Par exemple, le type incorrect de la valeur de la propriété ou la propriété généralement manquante:

image

Les vérifications peuvent être très utiles si vous décidez toujours d'écrire un tel fichier à la main ou de corriger un fichier existant.

Performances et tests de l'éditeur


Dans de nombreux vidages de nos utilisateurs, il a été constaté que des problèmes importants avec les performances de l'IDE sont liés à la façon dont l'IDE détermine la liste des tests disponibles dans le projet. Dans la version 2018.3, nous avons rendu ce processus paresseux, et maintenant, si vous n'avez ouvert aucun fichier de test dans l'éditeur, ils ne seront pas indexés. De plus, des améliorations de performances ont été apportées lors de la navigation vers les résultats des tests, la saisie semi-automatique des macros de test, etc.

Améliorations de l'éditeur


Comme vous le savez, dans la fenêtre Documentation rapide ( Ctrl+Q / F1 ), CLion peut afficher non seulement la documentation et les commentaires de code, mais également les types inférés pour les variables et la substitution finale dans les macros. Cette recherche finale est maintenant formatée et les mots clés y sont mis en évidence. Très pratique pour les macros complexes avec plusieurs niveaux d'imbrication, par exemple pour Boost:

image

Les commentaires TODO peuvent désormais être multilignes, l'essentiel est de mettre en retrait la deuxième ligne et les lignes suivantes - CLion comprendra automatiquement que cela fait partie du commentaire TODO:

image

Il y a des utilisateurs pour qui les thèmes standard ne conviennent pas, car ils n'ont pas un contraste suffisant. Pour eux, nous avons ajouté un thème spécial à contraste élevé. Il ne peut être activé que dans l'éditeur de code (Ctrl + `) ou pour l'ensemble de l'EDI (Paramètres / Préférences | Apparence et comportement | Apparence | Thème).

image

En collaboration avec IntelliJ Platform, nous avons repensé le menu des paramètres des plugins dans l'EDI (Paramètres / Préférences | Plugins). Il est désormais beaucoup plus facile de maintenir à jour les plugins installés, ainsi que de trier et de filtrer un énorme référentiel de plugins IDE existants.

Système de contrôle de version


Un autre changement majeur de plate-forme est le support tant attendu des sous-modules Git . Désormais, toutes les opérations de travail avec VCS dans CLion sont également prises en compte par les sous-modules: clonage d'un projet, mise à jour, comparaison de versions (diff), etc.

La fenêtre GitHub Pull Requests a été ajoutée, dans laquelle vous pouvez non seulement afficher toutes les demandes d'extraction, mais également les rechercher / filtrer par auteur ou par statut. Et vous pouvez créer une nouvelle branche à partir de n'importe quelle demande de tirage en un seul clic.

Démo


Vidéo traditionnelle sur les nouvelles fonctionnalités de CLion 2018.3 en anglais:


Et ensuite?


L'année prochaine, nous prévoyons de continuer à travailler sur le deuxième moteur de langage supplémentaire basé sur Clangd - voyons quelles autres fonctionnalités IDE nous pouvons implémenter dessus. Nous allons améliorer la productivité de l'éditeur, terminer et améliorer les fonctionnalités existantes; Le travail de support du développement à distance dans CLion semble particulièrement diversifié. À partir des intégrations, nous planifions le format clang et, probablement, tel ou tel débogueur pour Windows / MSVC.

Et le principal objectif pour nous sera le développement intégré . Plus récemment, Elmot , l'auteur d'un plugin de support très populaire dans CLion OpenOCD + STM32CubeMX , a rejoint notre équipe. Ilya continuera d'intégrer cette fonctionnalité dans l'IDE, mais nous prévoyons de terminer la vue de la mémoire et de refaire la vue hexadécimale dans un avenir très proche.

Des questions, des souhaits, des rapports de bugs et seulement des pensées exprimées dans les commentaires! Nous nous ferons un plaisir de vous répondre.

Votre équipe JetBrains CLion
La volonté de se développer

Source: https://habr.com/ru/post/fr431384/


All Articles