70 votes

Désactiver l'aperçu dans le code Visual Studio

Est-il un moyen de désactiver les touches ctrl-cliquez sur "peek" fonctionnalité dans le Code de Visual Studio? Idéalement, j'aimerais ctrl-clic pour ouvrir le fichier contenant la définition dans un nouvel onglet.

Edit: j'ai soumis une question à au moins la rendre moins à confusion. Apparemment, mon terminologie est un peu mal.

Pour clarifier, il y a deux actions:

  1. Faites un clic droit - > coup d'oeil Définition
  2. Faites un clic droit - > Aller à la Définition (liée à ctrl-clic)

Leur comportement est comme suit:

  1. PD, de Définition Unique
    • Ouvre inline interface montrant définition.
  2. PD, de Multiples Définitions

    • Ouvre inline interface d'affichage des définitions.
  3. GtD, De Définition Unique

    • Ouvrez le fichier contenant la définition.
  4. GtD, De Multiples Définitions
    • Choisissez l'une des définitions au hasard, ouvrir ce fichier, et une ligne d'interface montrant toutes les définitions.

Tous ceux-là sont bien sauf la dernière. De faire deux choses à des résultats dans un très redondant et confus de l'INTERFACE utilisateur comme ceci:

Confusing!

Il devrait y avoir un moyen d'avoir l'un de ces comportements:

  • Choisissez l'une des définitions au hasard, ouvrir ce fichier.

Ou:

  • Ouvrir inline interface montrant toutes les définitions (dans le fichier en cours)

8voto

Derek Ziemba Points 112

J'ai fait une demande d'extraction pour résoudre ce https://github.com/Microsoft/vscode/pull/68023mais, jusqu'alors, voici un correctif temporaire que les patches, les VSCode fichiers d'installation. Vous aurez besoin de ré-appliquer la mise à jour.

EDIT: Le correctif a été fusionnée dans la vscode. Il devrait être dans les versions ultérieures.

Avec ce correctif Ctrl+Clic:

  • L'utilisation d'œil s'il y a plusieurs définitions
  • Lors de l'utilisation d'œil, ne accédez à la meilleure correspondance dans l'éditeur et de vous faire perdre votre place
  • Si il y a une seule définition, il sera accédez à celle qui correspond le mieux et de ne PAS ouvrir d'œil.

  1. Comprendre quelle est la fonction qui doit être corrigé ressemble. La méthode est - DefinitionAction.prototype._onResult(editorService, editor, model)

  2. Aller à la VSCode répertoire d'installation. %LocalAppData%\Programs\Microsoft VS Code et faites un clic droit et ouvrez le répertoire dans VSCode de sorte que nous pouvons utiliser VSCode la fonction de recherche pour rechercher du texte dans chaque fichier.

  3. Recherche pour _onResult et d'évaluer tous les résultats, vérifier pour voir si la signature et le corps correspond à ce que nous attendons de la fonction que nous avons vu à l'étape 1.

    • Nous savons à partir de l'étape 1, la fonction _openReference est à proximité. L'utiliser pour affiner la recherche.
    • Je l'ai trouvé, en workbench.main.js ligne 2454. L'utilisation du support correspondant à trouver la fin ou de savoir que ça se termine immédiatement avant t.prototype._openReference
    • La fonction lorsque leur format est le suivant (async func est compilé vers le bas à la statemachine, c'est pourquoi il ne ressemble en rien à la source caractères d'imprimerie):

      t.prototype._onResult = function (e, t, r) {
        return i(this, void 0, void 0, function () {
          var i, s, a;
          return n(this, function (n) {
            switch (n.label) {
              case 0:
                return i = r.getAriaMessage(), o.alert(i), this._configuration.openInPeek ? (this._openInPeek(e, t, r), [3, 3]) : [3, 1];
              case 1:
                return s = r.nearestReference(t.getModel().uri, t.getPosition()), [4, this._openReference(t, e, s, this._configuration.openToSide)];
              case 2:
                (a = n.sent()) && r.references.length > 1 ? this._openInPeek(e, a, r) : r.dispose(), n.label = 3;
              case 3:
              return [2]
            }
          })
        })
      }
      
  4. Remplacer la fonction avec le suivant (si vous utilisez la même version) ou de format et de modifier la fonction que vous avez trouvé pour être similaire à cet exemple. Remarque l' o variable est le global\fenêtre de l'objet et le sujet à changement.

    t.prototype._onResult = function (e, t, r) {
      return i(this, void 0, void 0, function () {
        return n(this, function (n) {
          switch (n.label) {
            case 0:
              return r.getAriaMessage(), o.alert(r.getAriaMessage()), this._configuration.openInPeek || r.references.length > 1 ? (this._openInPeek(e, t, r), [3, 3]) : [3, 1];
            case 1:
              return [4, this._openReference(t, e, r.nearestReference(t.getModel().uri, t.getPosition()), this._configuration.openToSide)];
            case 2:
              r.dispose(), n.label = 3;
            case 3:
            return [2]
          }
        })
      })
    }
    
  5. Lancement VSCode. Vous recevrez un Your Code installation appears to be corrupt. Please reinstall. Il suffit de frapper sur l'icône d'engrenage et cliquez sur Don't Show Again.

1voto

Cobus Kruger Points 1325

Cela semble avoir été corrigé dans une version plus récente. Si je survole maintenant FOO en foo.cpp , je vois l'info-bulle normale #define FOO 2 . Si j'appuie sur Ctrl, le message se développe pour ajouter le texte "Cliquez pour afficher 2 définitions" et si je clique tout en maintenant la touche Ctrl enfoncée, la fenêtre d'aperçu apparaît, comme demandé.

entrez la description de l'image ici

0voto

Ben Points 117

J'ai essayé de trouver une solution de contournement changer le comportement de la CMD + Clic pour aller à la mise en œuvre, mais il semble que il n'y a pas de solution pour le moment?

Le VSCode de la documentation montre ses configuré par défaut pour aller à la définition sans un moyen de le modifier: https://code.visualstudio.com/docs/editor/editingevolved

Sur ma machine (Mac) si j'appuyez sur CMD + Clic ou la touche F12 sur une méthode qu'il va me diriger vers l'Œil de vue sur la définition, toutefois, CMD+F12 vais me diriger vers la mise en œuvre sans l'œil apparaissant.

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