vscode-minxing-extension
Version:
适用于敏行移动平台的开发工具,包含创建应用模板,WiFi真机同步,日志输出等功能
43 lines (41 loc) • 1.62 kB
text/typescript
// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
import 'source-map-support/register'
import * as vscode from 'vscode';
import co from 'co';
import commandHandlers from './command_handlers';
import output from './output';
import wifi from './wifi';
import config from './config';
import template from './template';
// this method is called when your extension is activated
// your extension is activated the very first time the command is executed
export const activate = co.wrap(function*(context: vscode.ExtensionContext){
output.init();
output.showChannel();
template.checkAllTemplateUpdate();
yield wifi.start(context);
wifi.log();
initCommands(context);
});
function initCommands(context: vscode.ExtensionContext) {
const subscriptions = config.commands.reduce((subscriptions, command) => {
const curSub = vscode.commands.registerCommand(`${command.command}`, uri => {
const namespace = 'Minxing';
const c = command.command;
if (!(new RegExp(`^${namespace}`)).test(c)) {
return;
}
const method = c.split('.')[1];
if (commandHandlers[method] instanceof Function) {
commandHandlers[method](uri);
}
});
return [...subscriptions, curSub]
}, []);
context.subscriptions.push(...subscriptions);
}
// this method is called when your extension is deactivated
export function deactivate() {
wifi.stop();
}