Я хотел бы иметь возможность создать / написать команду для свертывания всего кода во всех открытых редакторах кода Visual Studio.
Мне кажется, я очень близко.
Я использую расширение "команды сценариев", написанное Марсель Дж. Клоуберт
Когда я использую следующий скрипт с примерно 7 открытыми редакторами в одной группе. Я добиваюсь следующего:
- Открытый редактор (во время выполнения) имеет свернутый код
- VSC будет зацикливаться на открытых редакторах
- Ни у одного другого редактора нет свернутого кода
Сценарий, который я использую:
// Fold all code in all open editors.
function execute(args) {
// Obtain access to vscode
var vscode = args.require('vscode');
// Set number of open editors... (future: query vscode for number of open editors)
var numOpenEditor = 20;
// Loop for numOpenEditor times
for (var i = 0; i <= numOpenEditor; i++){
// Fold the current open editor
vscode.commands.executeCommand('editor.foldAll');
// Move to the next editor to the right
vscode.commands.executeCommand('workbench.action.nextEditor');
// Loop message
var statusString = 'Loop ->' + i
// print message
vscode.window.showErrorMessage(statusString);
}
}
// Script Commands must have a public execute() function to work.
exports.execute = execute;
Я сделал интересное наблюдение, когда я использую приведенный выше скрипт с примерно 7 открытыми редакторами с двумя или более группами. Что-то о переключении на новую группу позволит команде editor.foldAll
работать , Обратите внимание, что если в группе несколько редакторов, единственный редактор, который свернет свой код, - это открытый редактор в группе. Таким образом, все остальные редакторы не будут сбрасываться.
Я также подумал, что, может быть ... сценарий должен был замедлиться, поэтому я добавил функцию для приостановки на каждой итерации. Это тоже не сработало.
Любая помощь будет отличной!