2017-01-10 4 views
2

например, есть два расширения VSCode.
- extension1 является регистром команды 'exCommand1'.
- extension2 является регистром команды 'exCommand2'.
Можно ли вызвать команду между расширениями в VSCode?

Расширение VSCode может вызвать команду.
(ссылка: https://code.visualstudio.com/docs/extensionAPI/vscode-api)

executeCommand<T>(command: string, ...rest: any[]): Thenable<T | undefined> 

Если API Doc правильно то ..

extension1 can call extension2's 'exCommand2'. and 
extension2 can call extension1's 'exCommand1'. 

это возможно? расширение

VSCode является Ленивый Loading ...

Если вызов команды INTER внутреннего абонента можно то как расширение нагрузки на другое расширение?

ответ

1

Я знаю, что это старый пост, если у вас все еще есть одно и то же требование или для других пользователей Google, вот как я это сделал.

 var xmlExtension = vscode.extensions.getExtension('DotJoshJohnson.xml'); 

     // is the ext loaded and ready? 
     if(xmlExtension.isActive == false){ 
      xmlExtension.activate().then(
       function(){ 
        console.log("Extension activated"); 
        // comment next line out for release 
        findCommand(); 
        vscode.commands.executeCommand("xmlTools.formatAsXml"); 
       }, 
       function(){ 
        console.log("Extension activation failed"); 
       } 
      ); 
     } else { 
      vscode.commands.executeCommand("xmlTools.formatAsXml"); 
     } 


     // dev helper function to dump all the command identifiers to the console 
     // helps if you cannot find the command id on github. 
     var findCommand = function(){ 
      vscode.commands.getCommands(true).then( 
       function(cmds){ 
        console.log("fulfilled"); 
        console.log(cmd); 
       }, 
       function() { 
        console.log("failed"); 
        console.log(arguments); 
       } 
      ) 
     }; 

 Смежные вопросы

  • Нет связанных вопросов^_^