Nouveautés de PhpStorm 2022.1

PhpStorm 2022.1 constitue une mise à jour majeure de l'IDE qui apporte la prise en charge des tableaux multilignes et imbriqués, la refactorisation Extract Method directement dans l'éditeur, une meilleure prise en charge des modèles Blade, de WordPress, des génériques en PHP, et bien plus.

Tableaux multilignes et imbriqués

Les formes de tableaux dans les blocs PHPDoc sont prises en charge depuis PhpStorm 2021.2. Toutefois, il n'était possible d'annoter qu'une seule ligne ou un seul niveau.

Avec PhpStorm 2022.1, nous prenons entièrement en charge les tableaux multilignes et imbriqués, aussi bien dans PHPDoc que dans l'attribut #[ArrayShape] !

Ajoutez des annotations de forme de tableau pour bénéficier de la saisie semi-automatique du code pour les clés et déduire les types de valeur dans des structures de données tabulaires simples ou des tableaux de type objet. Vous pouvez utiliser PHPDoc et la syntaxe Attribut dans PhpStorm, selon ce que vous préférez. La syntaxe est prise en charge pour les types de retour et les types de paramètres.

Refactorisation Extract Method directement dans l'éditeur

Extract Method est l'une des refactorisations les plus utilisées dans PhpStorm. Pour simplifier le code et créer une méthode, sélectionnez une partie de code et appuyez sur ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M).

Auparavant, cette action ouvrait une boîte de dialogue pour la configuration de la refactorisation. Mais personne n'aime les fenêtres contextuelles. C'est pourquoi cette nouvelle version offre la possibilité d'utiliser la refactorisation directement dans l'éditeur dans de nombreux cas.

Aucune boîte de dialogue ne s'affiche et une nouvelle méthode (ou fonction) sera créée directement dans l'éditeur. Le curseur sera actif pour modifier le nom de la nouvelle méthode.

Meilleure prise en charge des modèles Laravel Blade

Auparavant, PhpStorm traitait chaque bloc de code des modèles Blade comme une zone indépendante. Cela causait souvent des problèmes avec la saisie semi-automatique et l'analyse du code.

Dans PhpStorm 2022.1, nous avons considérablement amélioré le traitement des modèles Blade par l'IDE. La saisie semi-automatique du code dans les fichiers .blade.php est ainsi beaucoup plus efficace.

De nombreux autres problèmes de saisie semi-automatique et de formatage du code dans les modèles Blade ont également été résolus. En savoir plus.

Améliorations pour WordPress

Prise en charge des chemins dynamiques avec « get_template_directory_uri() »

Vous pouvez utiliser ⌘+Clic (Ctrl+Clic) sur les chemins de fichier pour ouvrir les fichiers correspondants dans l'éditeur. Cela ne fonctionnait pas pour les chemins dynamiques dans du code WordPress lorsque le chemin comprenait des fonctions WordPress.

Dans cette version, nous avons ajouté la prise en charge de la fonction get_template_directory_uri() dans les chemins. D'autres fonctions seront prises en charge dans les mises à jour suivantes.

Passer d'un appel de hook aux enregistrements

Le système de hooks de WordPress est puissant, mais il ne permet pas d'établir une relation entre le point d'appel du hook et le point de déclaration du gestionnaire.

Vous disposez à présent d'une icône de gouttière, à gauche d'un appel. Cliquez dessus pour afficher la liste des utilisations de hooks, y compris l'enregistrement et d'autres appels.

Nouvelles fonctionnalités de métadonnées PHP avancées

Comme vous le savez peut-être, en plus de ses capacités d'analyse du code intégrées, PhpStorm a aussi une connaissance du code Php provenant de fichiers de métadonnées. Ces connaissances sont réunies dans le fichier .phpstorm.meta.php. Vous pouvez l'utiliser pour donner à PhpStorm plus d'informations sur la base de code et ainsi améliorer la saisie semi-automatique.

Prise en charge des méthodes magiques __call et __callStatic

Auparavant, si vous utilisez les méthodes magiques _call ou _callStatic, vous perdiez la saisie semi-automatique du code pour les méthodes, car elles n'étaient pas définies.

Dans cette version, vous pouvez ajouter l'entrée de métadonnées correspondante et bénéficier de la saisie semi-automatique pour ces types d'appels.

Vous pouvez même traiter automatiquement les appels dynamiques en récupérant un nom de méthode spécifique à partir d'une valeur de paramètre.

Prise en charge des types d'union

Il est désormais possible de spécifier les types d'union sous la forme @|MyClass dans .phpstorm.meta.php, ce qui peut améliorer l'assistance du code pour les mocks.

Pour en savoir plus sur les autres fonctionnalités de métadonnées, consultez la documentation.

Meilleure prise en charge des annotations et des génériques

Nous continuons à améliorer la prise en charge des génériques basés sur les annotations dans PhpStorm. Dans cette version, nous avons ajouté la couverture de nouveaux cas, notamment :

  • @psalm-import-type, @phpstan-import-type
  • @psalm-trace, @phpstan-trace
  • Génériques dans les balises @method

Nouvel assistant de projet Composer

Désormais, lors de la création d'un projet vide, vous avez la possibilité de générer automatiquement le fichier composer.json correspondant et de fournir les dépendances voulues. Une fois le projet créé, PhpStorm vous invite à l'installer.

Expérience utilisateur

Nouvelle fenêtre d'outils Notifications

Nous avons remplacé l'instance Event Log par la nouvelle fenêtre d'outils Notifications. Cette modification permet d'obtenir une meilleure vue d'ensemble des notifications de l'IDE et de réduire le risque de manquer une information importante. Par défaut, la nouvelle fenêtre d'outils est située dans le coin inférieur droit de la fenêtre de l'IDE. Les notifications sont classées en deux catégories : Suggestions et Timeline.

Mise à jour de la boîte de dialogue Structural Search and Replace

Appelez Structural Search and Replace dans le menu principal Edit | Find | Search Structurally

Nous avons remanié la boîte de dialogue Structural Search and Replace afin de présenter une liste de tous les modèles et de faciliter la navigation entre eux.

Nous avons également ajouté une icône Pin Dialog dans le coin supérieur droit de la boîte de dialogue Structural Search and Replace.

Onglets fractionnés de façon égale

Il est désormais possible de répartir uniformément l'espace de travail entre les onglets de l'éditeur afin qu'ils aient tous la même largeur. Activez Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.

Exportation de diagrammes UML vers d'autres formats

Il est désormais possible d'exporter des diagrammes UML sous forme de fichiers yEd .graphml, JGraph .drawio, Graphviz .dot, Mermaid .md, Plantuml et IntelliJ IDEA .uml, afin d'assurer la compatibilité avec des outils tiers.

Améliorations pour Markdown

Exécution de commandes à partir de fichiers Markdown

Les fichiers README décrivent souvent les étapes nécessaires à l'exécution d'une application et répertorient une série de commandes à utiliser. PhpStorm 2022.1 vous permet d'exécuter ces commandes directement depuis le fichier markdown : il suffit de cliquer sur l'icône Run dans la gouttière, à gauche de la commande.

Copy code snippet pour Markdown

Nous avons également ajouté une action Copy code snippet aux blocs Markdown, qui permet de copier facilement leur contenu dans le presse-papiers.

Mise à jour de la barre d'outils flottante de l'éditeur Markdown

Nous avons remanié la barre d'outils flottante qui s'affiche lors de la sélection de texte, afin de faciliter la mise en forme des fichiers Markdown. Hormis la nouvelle présentation, cette barre d'outils permet désormais de créer des listes et comporte un menu pour sélectionner les styles d'en-tête.

La barre d'outils est personnalisable, vous pouvez donc y ajouter les options dont vous avez le plus besoin. Allez dans Settings / Preferences | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar.

VCS

Mise à jour d'Annotate with Git Blame

Nous avons amélioré la fonctionnalité d'Annotate with Git Blame afin de faciliter l'examen des modifications. L'IDE met en évidence la différence entre les lignes directement dans l'éditeur lorsque vous survolez une annotation, et si vous cliquez dessus, l'IDE ouvre la fenêtre d'outils Git Log.

Suggestions de modifications dans les commentaires des requêtes pull

Il est maintenant plus facile de travailler avec les modifications suggérées dans PhpStorm, car vous pouvez appliquer des modifications au code ou valider des modifications par commit localement, directement dans l'IDE.

Mise à jour du volet Commit Details dans la fenêtre d'outils Git

Le volet Commit Details comprend désormais des informations sur les signatures GPG et l'état du build. Auparavant, ces données étaient seulement affichées dans une colonne du journal Git.

Git File History : nouvelle interface utilisateur sans index

La nouvelle interface utilisateur de la fenêtre d'outils Git File History est désormais indépendante du processus d'indexation. Les données sont représentées avec une nouvelle interface, même lorsque l'indexation des journaux est désactivée.

Nous avons présenté ici les modifications les plus importantes de cette version. Pour plus de détails, consultez l'annonce de publication sur le blog PhpStorm.