提交 74dec50a 编写于 作者: S Sriram Desikan

Use set instead of map and set active only on primary instance

上级 51260093
......@@ -79,24 +79,24 @@ DEFAULT_TERMINAL_LINUX_READY.then(defaultTerminalLinux => {
const OPEN_IN_TERMINAL_COMMAND_ID = 'openInTerminal';
CommandsRegistry.registerCommand({
id: OPEN_IN_TERMINAL_COMMAND_ID,
handler: (accessor, resource: uri) => {
handler: (accessor, selectedResource: uri) => {
const configurationService = accessor.get(IConfigurationService);
const editorService = accessor.get(IWorkbenchEditorService);
const fileService = accessor.get(IFileService);
const integratedTerminalService = accessor.get(IIntegratedTerminalService);
const terminalService = accessor.get(ITerminalService);
let resources:uri[] = [];
let directoryMap:Map<string, boolean> = new Map();
resources = getMultiSelectedResources(resource, accessor.get(IListService), editorService);
let directorySet:Set<string> = new Set();
resources = getMultiSelectedResources(selectedResource, accessor.get(IListService), editorService);
return resources.map((resource) => {
return fileService.resolveFile(resource).then(stat => {
return stat.isDirectory ? stat.resource.fsPath : paths.dirname(stat.resource.fsPath);
}).then(directoryToOpen => {
if (!directoryMap.has(directoryToOpen)) {
directoryMap.set(directoryToOpen, true);
if (!directorySet.has(directoryToOpen)) {
directorySet.add(directoryToOpen);
if (configurationService.getValue<ITerminalConfiguration>().terminal.explorerKind === 'integrated') {
const instance = integratedTerminalService.createInstance({ cwd: directoryToOpen }, true);
if (instance) {
if (instance && (selectedResource === resource)) {
integratedTerminalService.setActiveInstance(instance);
integratedTerminalService.showPanel(true);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册