3 votes

VSCode Extension API - Identifier le clic d'un fichier ou d'un dossier dans le menu contextuel de l'explorateur

VSCode 1.3 a ajouté la possibilité d'ajouter des commandes aux menus contextuels. Existe-t-il un moyen d'identifier si un fichier ou un dossier est cliqué pour ouvrir le menu contextuel de l'explorateur ?

"menus": {
    "explorer/context": [
        {
            "when": "????",
            "command": "extension.myCommand",
            "group": "myGroup"
        }
    ]
}

Existe-t-il une liste exhaustive (ou presque) des expressions qui pourraient être vérifiées dans la clause when ?

4voto

dorkinson Points 26

Vous pouvez utiliser "when": "explorerResourceIsFolder" .

J'ai dû fouiller dans le code pour la trouver (j'étais en train de rédiger une réponse pour dire qu'elle n'existait pas et énumérer les valeurs possibles de la clause quand je l'ai vue).

À partir de la version 1.10.1 : config.<any_config_path_here> editorIsOpen explorerResourceIsFolder explorerViewletFocus explorerViewletVisible filesExplorerFocus globalMessageVisible inDebugMode inQuickOpen inZenMode listFocus openEditorsFocus resource (Uri information: path, query, scheme, etc) resourceFilename resourceLangId resourceScheme scmProvider textCompareEditorVisible

J'ai soumis une question pour améliorer la documentation à ce sujet.

1voto

Lenny Points 2686

Vous pouvez obtenir la liste des identifiants de langue comme suit...

vscode.languages.getLanguages().then(l => console.log('languages', l));

Je n'ai toujours pas trouvé comment déterminer si l'élément sur lequel on a cliqué avec le bouton droit de la souris est un répertoire. Si quelqu'un trouve la solution, qu'il me le fasse savoir.

0voto

ozczecho Points 3575

Un article sur cette fonctionnalité est disponible à l'adresse suivante aquí . Mais fondamentalement :

  • le when est le même que le keybindings-when et peut utiliser les mêmes touches
  • le when peut utiliser deux nouvelles clés resourceScheme et resourceLangId qui sont disponibles sans éditeur - pensez à de l'explorateur
  • le when peut être une valeur de configuration booléenne, par exemple config.editor.lineNumbers

Mon menu :

"menus":{
    "explorer/context": [
        {
            "when": "resourceLangId == sql",
            "command": "extension.myCmd"
        }
    ]

0voto

Alex Popkov Points 1

https://code.visualstudio.com/docs/getstarted/keybindings#_when-clause-contexts

est un fichier : "when": "!explorerResourceIsFolder"

est dir : "when": "explorerResourceIsFolder"

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