所以我一直在开发我的第一个vscode扩展,并且一切顺利,直到调试器停止我对扩展的执行。
我对javascript很陌生,所以也许我在“ thenables”上缺少了一些东西,但这是我的问题。
我使用键盘快捷键(例如)运行扩展程序。 “ ctrl + alt + o ”,它运行良好,但是当我更改“ activeTextEditor ”时,我得到“ 被拒绝的承诺未在1秒钟内处理” ”。
可疑部分是这个:
const checkOutHeader = (history) => {
console.log("Path: checkOutHeader");
activeTextEditor.edit((editor) => {
editor.replace(new vscode.Range(0,0,10,100), commentHeader(
populateCheckOutHeader(head.out, history).substring(1), languageId));
}).then((none)=>{
console.log("We are here!");
saveFile();
});
};
这基于扩展程序在调试控制台中记录的路径:
CheckoutHeader: Now active!
Path: getHeaderConfig
lang: makefile
Path: supportHeaderLanguage
Path: checkInHandler
Path: getCurrentHeader
Path: getHistoryFileStatus
Path: getHeaderHistory
Path: getHistoryFileName
Path: getHistoryFileStatus
Path: getHistoryTimeIn
Path: getHistoryInBy
Path: getHistoryTimeOut
Path: getHistoryOutBy
Path: checkInHeader
rejected promise not handled within 1 second
我了解到有人声称这是c ++ tools,但我没有安装该扩展名。
谢谢!
答案 0 :(得分:0)
事实证明,尽管有调试反馈,但诺言从来都不是问题。
我已经在文件顶部设置了全局变量
const activeTextEditor = vscode.window.activeTextEditor;
const document = activeTextEditor.document;
const languageId = document.languageId;
使访问API更加方便,但是由于它们仅在我每次更改“ activeTextEditor ”时第一次运行扩展程序时才启动,因此该变量仍包含旧信息导致崩溃。