VS Code 1.41 met à jour les résultats de la recherche en cours de frappe
Et apporte une coloration à la minicarte pour signaler les erreurs, les avertissements ainsi que les modifications de contenu
Le 2019-12-13 15:54:29, par Stéphane le calme, Chroniqueur Actualités
Microsoft a annoncé la disponibilité de Visual Studio Code version 1.41. En voici les principales caractéristiques.
Workbench
Dossiers compacts dans l'Explorateur
Dans l'explorateur de fichiers, Microsoft rend maintenant les dossiers enfants uniques sous une forme compacte. Dans un tel formulaire, les dossiers enfants uniques seront compressés dans un élément d'arborescence combiné. Utile pour les structures de packages Java, par exemple.
La définition de explorer.compactFolders contrôle ce comportement. Par défaut, ce paramètre est activé.
Enregistrer à partir des éditeurs Peek
Si vous affichez une vue Peek et effectuez une saisie, vous pouvez maintenant enregistrer les modifications via Ctrl + S, si le focus se trouve dans cet éditeur intégré.
Panneau d'affichage de Problèmes
Plus de filtres
Des filtres prédéfinis ont été ajoutés au panneau Problèmes. Vous pouvez désormais filtrer les problèmes par type (erreurs, avertissements et informations) et également voir les problèmes limités au fichier actif en cours.
Afficher le problème actuel dans la barre d'état
Vous pouvez maintenant configurer VS Code pour afficher le message de problème actuel dans la barre d'état. Cela vous permet de voir le résumé du problème sélectionné dans le fichier actif sans mouvements de clavier ou de souris supplémentaires.
Remarque: L'activation de cette fonctionnalité nécessite l'activation du paramètre problems.showCurrentInStatus.
Disposition flexible du boîtier de filtre
La zone de filtre du panneau Problèmes ajuste désormais sa position en fonction de la position et de la taille du panneau.
Amélioration du rendu des polices (Windows, Linux)
Lorsque Microsoft a mis à jour vers Electron 6 la version précédente, de nombreux utilisateurs ont signalé que le rendu des polices avait régressé pour eux. Plus précisément, les polices n'étaient pas aussi fluides qu'auparavant. Microsoft a immédiatement résolu le problème dans l'éditeur et le correctif a été mis à disposition dans une version de récupération 1.40. Cependant, d'autres zones dans le Workbench souffraient toujours d'un rendu de police moins qu'idéal.
Dans cette version, Microsoft a amélioré le rendu des polices dans davantage de parties du plan de travail (pour Windows et Linux). Les captures d'écran ci-dessous montrent une comparaison avant et après (zoom avant pour montrer la différence). En particulier, de nombreux éléments d'arborescence et de liste du plan de travail ont été rendus en utilisant l'anticrénelage en niveaux de gris et ils sont désormais rendus avec l'anticrénelage en sous-pixels.
Avant (gauche) et après (droite):
Performances de fichier en lecture/écriture plus rapides pour les scénarios distants
La lecture et l'écriture de fichiers (à partir de l'éditeur de texte) devraient désormais être plus rapides pour les scénarios où le système de fichiers est distant et la latence est élevée (par exemple lorsque vous utilisez VS Code dans un navigateur avec une connexion lente ou lorsque vous êtes connecté à un hôte distant qui n’est pas dans la même région). Microsoft est passé à une implémentation basée sur les flux pour les lectures et les écritures qui réduit considérablement les frais de communication.
Recherche
Mettre à jour les résultats de la recherche en cours de frappe
Dans la recherche en texte intégral, les résultats seront désormais mis à jour à mesure que vous tapez. Cela est particulièrement utile dans des scénarios comme la construction de requêtes d'expression régulière complexes, où des commentaires rapides sur une requête peuvent vous aider à écrire le RegEx.
Ici, la rétroaction instantanée aide à construire une requête RegEx Find and Replace pour adopter la syntaxe de chaînage facultative de TypeScript:
Remarque: Cette fonctionnalité peut être désactivée en définissant search.searchOnType sur false, et le délai entre la saisie et la recherche peut être ajusté avec search.searchOnTypeDebouncePeriod, qui prend par défaut 300 ms.
Ajouter des curseurs aux résultats de recherche
Cette version embarque une commande pour ajouter des curseurs à toutes les correspondances d'une recherche de texte. En vous concentrant sur les résultats de recherche d'un fichier dans la vue Recherche, vous pouvez appuyer sur Ctrl + Maj + L pour modifier simultanément toutes les correspondances de ce fichier. Il s'agit du même raccourci clavier utilisé lors de la recherche dans un seul éditeur avec le widget Rechercher.
Développez tous les résultats de la recherche par défaut
Auparavant, si une recherche en texte intégral renvoyait plus de 10 résultats dans un seul fichier, elle apparaissait réduite dans l'arborescence Résultats. Cependant, cela a parfois rendu difficile la recherche d'un résultat particulier, donc avec cette version, tous les résultats sembleront développés.
Vous pouvez définir search.collapseResults sur auto pour revenir à l'ancien comportement.
Éditeur
Décorations de mini-carte pour les erreurs, les avertissements et les modifications de contenu
Les erreurs et les avertissements sont désormais mis en évidence en ligne dans la minicarte (aperçu du code). Vous pouvez changer la couleur de ces décorations avec les nouvelles couleurs de thème minimap.errorHighlight et minimap.warningHighlight.
Ci-dessous, vous pouvez voir la minicarte mettant en évidence une subtile faute de virgule manquante:
Les décorations des modifications de contenu sont également affichées dans le caniveau de la minicarte.Vous pouvez modifier les couleurs de changement de contenu avec:
Vous pouvez modifier la visibilité des décorations de contrôle de source avec le paramètre scm.diffDecorations, qui a les valeurs:
Commandes alternatives de navigation dans le code
VS Code ne faisait rien lorsque vous sélectionniez Aller à la définition alors qu'il était déjà à la définition. Avec cette version, d'autres commandes peuvent être exécutées à la place. Par exemple, Aller à la définition peut être mappé pour exécuter Aller aux références.
Ceci est personnalisé via le paramètre editor.gotoLocation.alternativeDefinitionCommand. Par exemple, vous pouvez faire que l'alternative à Aller à la définition soit Aller à la déclaration et vice versa. Vous pouvez laisser le paramètre vide si vous préférez l'ancien comportement.
Raccourcis clavier IntelliSense sur macOS
IntelliSense est généralement déclenché via Ctrl + Espace. Sur macOS cependant, ce raccourci clavier est utilisé par le système d'exploitation lorsque plusieurs sources d'entrée sont configurées. Cela conduit souvent à la confusion et aux utilisateurs qui pensent qu'IntelliSense est défectueux.
Il y a maintenant deux façons de gérer cela:
Screen reader output
Il existe un nouveau paramètre editor.accessibilityPageSize qui contrôle le nombre de lignes de l'éditeur pouvant être lues simultanément par un lecteur d'écran. Notez que cela a des implications sur les performances pour les nombres supérieurs à la valeur par défaut de 10.
Si vous utilisez la commande Say All du lecteur d'écran, Microsoft recommande de définir editor.accessibilityPageSize sur 100 ou 1000. La prochaine fois, l'éditeur prévoit d'examiner la possibilité de modifier la valeur par défaut de ce paramètre.
Nouvelle option de correspondance des crochets
Il est désormais possible de configurer "editor.matchBrackets": "near" pour obtenir l'ancien comportement de mise en surbrillance des crochets correspondants uniquement lorsque le curseur se trouve de chaque côté d'un crochet. La valeur par défaut est always, ce qui met en évidence les crochets correspondants entourant la position actuelle du curseur.
Langage
Curseur miroir HTML
VS Code ajoute désormais un curseur miroir lorsque vous modifiez des balises HTML. Ce comportement est contrôlé par le paramètre html.mirrorCursorOnMatchingTag, qui est activé par défaut.
Cette fonctionnalité marche en ajoutant un multi-curseur à la balise correspondante lorsque votre curseur se déplace dans une plage de noms de balises HTML. Tout comme en mode multi-curseur, vous pouvez utiliser la suppression mot par mot ou la sélection par mot. Le curseur en miroir est supprimé lorsque vous déplacez votre curseur en dehors de la plage de noms de balises.
Un cas particulier consiste à entrer dans l'espace lorsque le curseur se trouve à la fin de la balise d'ouverture, par exemple à la fin d'un div comme <div |> </ div |>. Dans ce cas, VS Code supprime l'espace inséré après le nom de la balise de fermeture et quitte le mode de curseur miroir, afin que vous puissiez continuer à modifier les attributs HTML.
Balises de renommage HTML
Vous pouvez maintenant utiliser F2 pour renommer les paires de balises d'ouverture / fermeture en HTML.
JSON
Pour éviter les problèmes de performances avec les fichiers JSON volumineux, la prise en charge du langage JSON a désormais une limite supérieure sur le nombre de régions de pliage et de symboles de document qu'il calcule (pour la vue Structure et le fil d'Ariane). Par défaut, la limite est de 5000 éléments, mais vous pouvez modifier la limite avec le paramètre json.maxItemsComputed.
TypeScript 3.7
VS Code est désormais fourni avec TypeScript 3.7.3. Cette mise à jour majeure apporte quelques améliorations du langage TypeScript - y compris des fonctions de chaînage facultatives, de coalescence nulle et d'assertion - ainsi que de nouvelles fonctionnalités d'outils pour JavaScript et TypeScript. Comme toujours, cette version inclut également un certain nombre de corrections de bogues importantes.
Prise en charge du chaînage en option pour JavaScript et TypeScript
Grâce à TypeScript 3.7, VS Code prend désormais en charge le chaînage d'options prêt à l'emploi pour JavaScript et TypeScript. Cela inclut la coloration syntaxique et IntelliSense.
Source : Microsoft
Workbench
Dossiers compacts dans l'Explorateur
Dans l'explorateur de fichiers, Microsoft rend maintenant les dossiers enfants uniques sous une forme compacte. Dans un tel formulaire, les dossiers enfants uniques seront compressés dans un élément d'arborescence combiné. Utile pour les structures de packages Java, par exemple.
La définition de explorer.compactFolders contrôle ce comportement. Par défaut, ce paramètre est activé.
Enregistrer à partir des éditeurs Peek
Si vous affichez une vue Peek et effectuez une saisie, vous pouvez maintenant enregistrer les modifications via Ctrl + S, si le focus se trouve dans cet éditeur intégré.
Panneau d'affichage de Problèmes
Plus de filtres
Des filtres prédéfinis ont été ajoutés au panneau Problèmes. Vous pouvez désormais filtrer les problèmes par type (erreurs, avertissements et informations) et également voir les problèmes limités au fichier actif en cours.
Afficher le problème actuel dans la barre d'état
Vous pouvez maintenant configurer VS Code pour afficher le message de problème actuel dans la barre d'état. Cela vous permet de voir le résumé du problème sélectionné dans le fichier actif sans mouvements de clavier ou de souris supplémentaires.
Remarque: L'activation de cette fonctionnalité nécessite l'activation du paramètre problems.showCurrentInStatus.
Disposition flexible du boîtier de filtre
La zone de filtre du panneau Problèmes ajuste désormais sa position en fonction de la position et de la taille du panneau.
Amélioration du rendu des polices (Windows, Linux)
Lorsque Microsoft a mis à jour vers Electron 6 la version précédente, de nombreux utilisateurs ont signalé que le rendu des polices avait régressé pour eux. Plus précisément, les polices n'étaient pas aussi fluides qu'auparavant. Microsoft a immédiatement résolu le problème dans l'éditeur et le correctif a été mis à disposition dans une version de récupération 1.40. Cependant, d'autres zones dans le Workbench souffraient toujours d'un rendu de police moins qu'idéal.
Dans cette version, Microsoft a amélioré le rendu des polices dans davantage de parties du plan de travail (pour Windows et Linux). Les captures d'écran ci-dessous montrent une comparaison avant et après (zoom avant pour montrer la différence). En particulier, de nombreux éléments d'arborescence et de liste du plan de travail ont été rendus en utilisant l'anticrénelage en niveaux de gris et ils sont désormais rendus avec l'anticrénelage en sous-pixels.
Avant (gauche) et après (droite):
Performances de fichier en lecture/écriture plus rapides pour les scénarios distants
La lecture et l'écriture de fichiers (à partir de l'éditeur de texte) devraient désormais être plus rapides pour les scénarios où le système de fichiers est distant et la latence est élevée (par exemple lorsque vous utilisez VS Code dans un navigateur avec une connexion lente ou lorsque vous êtes connecté à un hôte distant qui n’est pas dans la même région). Microsoft est passé à une implémentation basée sur les flux pour les lectures et les écritures qui réduit considérablement les frais de communication.
Recherche
Mettre à jour les résultats de la recherche en cours de frappe
Dans la recherche en texte intégral, les résultats seront désormais mis à jour à mesure que vous tapez. Cela est particulièrement utile dans des scénarios comme la construction de requêtes d'expression régulière complexes, où des commentaires rapides sur une requête peuvent vous aider à écrire le RegEx.
Ici, la rétroaction instantanée aide à construire une requête RegEx Find and Replace pour adopter la syntaxe de chaînage facultative de TypeScript:
Remarque: Cette fonctionnalité peut être désactivée en définissant search.searchOnType sur false, et le délai entre la saisie et la recherche peut être ajusté avec search.searchOnTypeDebouncePeriod, qui prend par défaut 300 ms.
Ajouter des curseurs aux résultats de recherche
Cette version embarque une commande pour ajouter des curseurs à toutes les correspondances d'une recherche de texte. En vous concentrant sur les résultats de recherche d'un fichier dans la vue Recherche, vous pouvez appuyer sur Ctrl + Maj + L pour modifier simultanément toutes les correspondances de ce fichier. Il s'agit du même raccourci clavier utilisé lors de la recherche dans un seul éditeur avec le widget Rechercher.
Développez tous les résultats de la recherche par défaut
Auparavant, si une recherche en texte intégral renvoyait plus de 10 résultats dans un seul fichier, elle apparaissait réduite dans l'arborescence Résultats. Cependant, cela a parfois rendu difficile la recherche d'un résultat particulier, donc avec cette version, tous les résultats sembleront développés.
Vous pouvez définir search.collapseResults sur auto pour revenir à l'ancien comportement.
Éditeur
Décorations de mini-carte pour les erreurs, les avertissements et les modifications de contenu
Les erreurs et les avertissements sont désormais mis en évidence en ligne dans la minicarte (aperçu du code). Vous pouvez changer la couleur de ces décorations avec les nouvelles couleurs de thème minimap.errorHighlight et minimap.warningHighlight.
Ci-dessous, vous pouvez voir la minicarte mettant en évidence une subtile faute de virgule manquante:
Les décorations des modifications de contenu sont également affichées dans le caniveau de la minicarte.Vous pouvez modifier les couleurs de changement de contenu avec:
- minimapGutter.addedBackground
- minimapGutter.modifiedBackground
- minimapGutter.deletedBackground
Vous pouvez modifier la visibilité des décorations de contrôle de source avec le paramètre scm.diffDecorations, qui a les valeurs:
- [B]all[/C] - Affiche les décorations des différences de contrôle de source dans tous les emplacements.
- gutter - Affiche uniquement dans la gouttière de l'éditeur de gauche.
- minimap - Affiche uniquement dans la gouttière de la mini-carte.
- overview - Affiche uniquement dans la règle d'aperçu.
- none - n'affiche pas les décorations.
Commandes alternatives de navigation dans le code
VS Code ne faisait rien lorsque vous sélectionniez Aller à la définition alors qu'il était déjà à la définition. Avec cette version, d'autres commandes peuvent être exécutées à la place. Par exemple, Aller à la définition peut être mappé pour exécuter Aller aux références.
Ceci est personnalisé via le paramètre editor.gotoLocation.alternativeDefinitionCommand. Par exemple, vous pouvez faire que l'alternative à Aller à la définition soit Aller à la déclaration et vice versa. Vous pouvez laisser le paramètre vide si vous préférez l'ancien comportement.
Raccourcis clavier IntelliSense sur macOS
IntelliSense est généralement déclenché via Ctrl + Espace. Sur macOS cependant, ce raccourci clavier est utilisé par le système d'exploitation lorsque plusieurs sources d'entrée sont configurées. Cela conduit souvent à la confusion et aux utilisateurs qui pensent qu'IntelliSense est défectueux.
Il y a maintenant deux façons de gérer cela:
- Utilisez le nouveau raccourci clavier Alt + Échap que Microsoft a ajouté pour macOS.
- Désactivez la commutation de source d'entrée via Ctrl + Espace dans vos préférences macOS via Préférences> Clavier> Raccourcis> Sources d'entrée.
Screen reader output
Il existe un nouveau paramètre editor.accessibilityPageSize qui contrôle le nombre de lignes de l'éditeur pouvant être lues simultanément par un lecteur d'écran. Notez que cela a des implications sur les performances pour les nombres supérieurs à la valeur par défaut de 10.
Si vous utilisez la commande Say All du lecteur d'écran, Microsoft recommande de définir editor.accessibilityPageSize sur 100 ou 1000. La prochaine fois, l'éditeur prévoit d'examiner la possibilité de modifier la valeur par défaut de ce paramètre.
Nouvelle option de correspondance des crochets
Il est désormais possible de configurer "editor.matchBrackets": "near" pour obtenir l'ancien comportement de mise en surbrillance des crochets correspondants uniquement lorsque le curseur se trouve de chaque côté d'un crochet. La valeur par défaut est always, ce qui met en évidence les crochets correspondants entourant la position actuelle du curseur.
Langage
Curseur miroir HTML
VS Code ajoute désormais un curseur miroir lorsque vous modifiez des balises HTML. Ce comportement est contrôlé par le paramètre html.mirrorCursorOnMatchingTag, qui est activé par défaut.
Cette fonctionnalité marche en ajoutant un multi-curseur à la balise correspondante lorsque votre curseur se déplace dans une plage de noms de balises HTML. Tout comme en mode multi-curseur, vous pouvez utiliser la suppression mot par mot ou la sélection par mot. Le curseur en miroir est supprimé lorsque vous déplacez votre curseur en dehors de la plage de noms de balises.
Un cas particulier consiste à entrer dans l'espace lorsque le curseur se trouve à la fin de la balise d'ouverture, par exemple à la fin d'un div comme <div |> </ div |>. Dans ce cas, VS Code supprime l'espace inséré après le nom de la balise de fermeture et quitte le mode de curseur miroir, afin que vous puissiez continuer à modifier les attributs HTML.
Balises de renommage HTML
Vous pouvez maintenant utiliser F2 pour renommer les paires de balises d'ouverture / fermeture en HTML.
JSON
Pour éviter les problèmes de performances avec les fichiers JSON volumineux, la prise en charge du langage JSON a désormais une limite supérieure sur le nombre de régions de pliage et de symboles de document qu'il calcule (pour la vue Structure et le fil d'Ariane). Par défaut, la limite est de 5000 éléments, mais vous pouvez modifier la limite avec le paramètre json.maxItemsComputed.
TypeScript 3.7
VS Code est désormais fourni avec TypeScript 3.7.3. Cette mise à jour majeure apporte quelques améliorations du langage TypeScript - y compris des fonctions de chaînage facultatives, de coalescence nulle et d'assertion - ainsi que de nouvelles fonctionnalités d'outils pour JavaScript et TypeScript. Comme toujours, cette version inclut également un certain nombre de corrections de bogues importantes.
Prise en charge du chaînage en option pour JavaScript et TypeScript
Grâce à TypeScript 3.7, VS Code prend désormais en charge le chaînage d'options prêt à l'emploi pour JavaScript et TypeScript. Cela inclut la coloration syntaxique et IntelliSense.
Source : Microsoft
-
smartiesExpert confirméCool mais je continue d'utiliser VSCodium afin de me passer des télémétrie de M$le 08/07/2022 à 10:39
-
dfiad77proMembre expérimentébref il y a plein de chose à dire sur vscode 1.41 : les evols du layout, de la tokenisation, du langage server, le terminal webgl, electron etc..
Un énorme travail à été fait pour clôturer la roadmap 2019 et par respect pour cela il faut avoir des discussions intelligentes !
marre de ces gens qui pourrissent les news avec des réponses de merde ! Pardon pour le terme , mais ça viens du coeur
donc -1 pour ton commentairele 13/12/2019 à 18:51 -
pierre.EMembre confirmémoi j'aimerais surtout un bouton pour chaque langage avec les extensions utiles pour éviter de me coltiner la recherche d'extensionle 12/03/2021 à 18:18
-
calvaireExpert confirméBonjour, je suis sur eclipse depuis 6 ans, quel avantage aurais-je a passer à VS code? (je code en C, Java et Python)le 13/12/2019 à 20:02
-
JPLAROCHEMembre expérimentévscodiumle 23/11/2020 à 3:22
-
LittleWhiteResponsable 2D/3D/JeuxBonjour,
Je pense que le Workspace Trust fait suite à un proof of concept d'utilisation de l'analyseur de code de Visual Studio Code sur une macro Rust qui permet d'effectuer des actions malveillantes sur le PC. Je n'arrive plus à retrouver le POC. le 13/06/2021 à 20:08 -
dfiad77proMembre expérimentéCoté Java , vscode n'est pas encore au niveau même si ça évolue vite, je pense qu'il faudra attendre 1ans avant qu'il doit envisageable de migrer.
Perso , j'utilise aussi vscode pour le Java (uniquement à cause des freeze d'éclipse), mais il me faut reconnaitre qu'il n'est pas encore au niveau (débogage, tomcat, etc.).le 13/12/2019 à 20:10 -
Mickael_IstriaMembre émériteuniquement à cause des freeze d'éclipsele 16/12/2019 à 15:43
-
dfiad77proMembre expérimentéCe ne sont pas les projets java seuls qui me posent soucis, j'utilise souvent éclipse avec, c'est surtout les projets contenant aussi React/TypeScript et node.
Malgré l'exclusion du node module, il rame (version 2019 /09)le 16/12/2019 à 18:09 -
darklinuxMembre extrêmement actifPour C et Python ce sont les meilleurs outils qui soient , ne fusse avec intellicode , le débogueur , attention tu parles bien du python " usuel " , pas celui rattaché au machine learning , l’il est bien , mais à mon gout pas encore au niveau d ' un spyderle 17/12/2019 à 0:17