124 votes

Réorganiser le nom de la variable locale en utilisant Visual Studio Code

J'ai cette situation simple. J'aimerais refactoriser le nom de la variable de rôle :

Entrez la description de l'image ici

Il semble que Visual Studio Code est assez intelligent pour savoir que "roles" dans l'URL ne doit pas être modifié.

Je veux juste refactoriser le nom de la variable dans un seul fichier, dans une seule portée, pas dans tout le fichier et certainement pas dans plusieurs fichiers !

Si j'utilise Ctrl + H, cela m'amènera à un menu qui par défaut refactorise le nom dans plusieurs fichiers ou un seul fichier entier, mais je veux juste refactoriser le nom dans une seule portée de fonction !

195voto

Matt Bierner Points 1076

Utilisez renommer le symbole à la place de la recherche/remplacement standard. Renommer est lié à F2 par défaut.

Renommer le symbole saura uniquement modifier les références locales de roles dans votre exemple. Visual Studio Code est livré avec la prise en charge du renommage pour JavaScript et TypeScript. D'autres langages peuvent nécessiter l'installation d'une extension de langage.

6 votes

Homme, y a-t-il un moyen d'utiliser quelque chose de plus facile que la touche f2? c'est vraiment difficile à utiliser. Pourquoi n'y a-t-il pas plus d'options avec le clic droit?

12 votes

Faites un clic droit sur le symbole. Il devrait être là. Vous pouvez également relier cela à n'importe quel raccourci clavier que vous souhaitez

0 votes

L'élément du menu contextuel ne s'affiche pas si le serveur de langage actuel ne prend pas en charge la fonctionnalité.

40voto

Nick Cuevas Points 356

Utilisez Renommer Symbole. Il est défini par défaut avec Ctrl + F2.

Cependant, gardez à l'esprit que la variable, la définition, la fonction, etc., que vous modifiez, sera modifiée dans le fichier lui-même, pas seulement la portée. Visual Studio Code n'a pas encore de mise en œuvre pour le renommage d'une variable dans une portée (par exemple, une variable à l'intérieur d'une fonction). Gardez cela à l'esprit.

Visual Studio Code - changer toutes les occurrences

7 votes

Je ne sais pas si cela a été modifié après la publication de cette réponse, mais il existe actuellement deux commandes différentes : Renommer le symbole (F2) et Changer toutes les occurrences (Ctrl+F2). La plus judicieuse semble être la première, autant que je sache.

3 votes

Juste pour ajouter, soyez prudent lorsque vous utilisez ceci, je viens de l'utiliser et cela a changé chaque instance dans l'ensemble d'un projet et non seulement le fichier sur lequel je travaillais, et vscode n'a pas pu le renverser, il a juste affiché une erreur disant que la refonte avait échoué. Merci à Git, c'est tout ce que je peux dire.

0 votes

@ÁlvaroGonzález Ctrl+F2 semble également assez intelligent. $true n'est pas sélectionné lorsque je clique avec le bouton droit sur la lettre t dans $t dans un fichier .ps1 et que je change toutes les occurrences.

31voto

Sergey NN Points 301

Pour les utilisateurs de macOS : Utilisez Fn + + F2 pour renommer une variable à l'intérieur d'un bloc de code.

2 votes

Pour moi, juste Fn + F2

7voto

Kishore Points 149

Pour ouvrir vos paramètres utilisateur et d'espace de travail, utilisez la commande de menu suivante dans Visual Studio Code :

Sous Windows/Linux : Menu Fichier Préférences Paramètres. Sous macOS : Code Préférences Paramètres.

Vous pouvez également ouvrir l'éditeur de paramètres à partir de la palette de commandes (Ctrl + Shift + P) avec Préférences, ouvrir Paramètres ou utiliser le raccourci clavier (Ctrl + ,).

Entrez ici la description de l'image

Dans la barre de recherche, saisissez keybindings.json, et ajoutez ce code ci-dessous :

{
  "command": "editor.action.changeAll",
  "key": "ctrl+f2",
  "when": "editorTextFocus && !editorReadonly"
}

et

{
  "command": "editor.action.rename",
  "key": "f2",
  "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
}

Dans les keybindings.

F2 semble fonctionner pour tous les fichiers, et Ctrl + F2 dans le fichier actuel uniquement.

0 votes

Est-ce que vous voulez dire keybindings.json au lieu de settings.json?

0 votes

La commande editor.action.changeAll fera cela en fonction des valeurs texteditor.action.rename le fera en fonction des références. C'est pourquoi, si vous exportez/importez un nom de variable/fonction, il sera renommé dans tous les fichiers. Soyez conscient de cela! De plus, si vous souhaitez renommer toutes les références, et ne pas utiliser d'alias (comme originalName as newName), vous pouvez modifier cela dans settings.json: "javascript.preferences.useAliasesForRenames": false

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X