2016-11-18 3 views
3

Lors de la programmation d'une extension vscode ... Existe-t-il une méthode par programme pour trouver la liaison de touches pour une commande fournie?Extension de code VS - recherche par programme de raccourcis clavier

Je voudrais être en mesure de voir si un utilisateur a mis à jour le mappage de touches par défaut pour une commande afin que l'interface utilisateur puisse afficher la liaison à jour. (Et sinon, regardez la liaison par défaut)

Voici les API que je l'ai regardé dans la mesure où:

vscode.workspace.getConfiguration() - Je ne peux pas déterminer comment accéder au fichier keybindings.json/effectuer une recherche. Vscode.extensions.getExtension (nom/id) permet d'accéder à package.json, mais pas à la commande ou au remplacement des raccourcis clavier.

vscode.getCommands ne fournit pas l'accès aux valeurs de KeyBinding soit .....

Répondre

1

Vous pouvez obtenir des valeurs à partir du fichier raccourci clavier de keybindings.json en utilisant NodeJS.

chemin keybindings.json sur les systèmes diferrent:

Windows: %APPDATA%\Code\User\keybindings.json 
Mac: $HOME/Library/Application Support/Code/User/keybindings.json 
Linux: $HOME/.config/Code/User/keybindings.json 

Pour construire le chemin que vous aurez besoin pour obtenir les variables de l'environnement à l'aide process.env {} variableName..

Par exemple, pour MacOS, ce sera:

var process = require('process'); 
//... 
var keybindingsPath = process.env.HOME + "/Library/Application Support/Code/User/keybindings.json"; 

vscode.workspace.openTextDocument(keybindingsPath).then((document) => { 
    let text = document.getText(); 
    //then use this JSON file for your needs 
    //... 
});