我正在使用Colonize扩展。 扩展名添加;按 Shift + Enter 键在该行的末尾。 然而,当我收到建议时,他们就会被选中。我不想要这个。
我想到的第一件事是检查回购问题:有人也这么认为。 然后我决定检查源代码,但我没有看到任何实际选择该建议的内容。
我尝试将所有要禁用的命令添加到 keybindings.json 中,并且它无需殖民即可工作!
{
"key": "shift+Enter",
"command": "-acceptSelectedSuggestion",
"when": "true"
},
{
"key": "shift+Enter",
"command": "-acceptSelectedSuggestionOnEnter",
"when": "true"
},
{
"key": "shift+enter",
"command": "-acceptAlternativeSelectedSuggestion",
"when": "true"
}
合乎逻辑的下一步是检查扩展的源代码。 幸运的是它很短,只是使用 editBuilder 插入分号。 我怀疑这个声明可能是问题所在,但是在扩展的 js 文件中评论这部分之后,没有任何改变接受建议的条款:
vscode.commands.executeCommand("acceptSelectedSuggestion").then(() => {
var lineIndex = editor.selection.active.line;
var lineObject = editor.document.lineAt(lineIndex);
var lineLength = lineObject.text.length;
if (
lineObject.text.charAt(lineLength - 1) !== ";" &&
!lineObject.isEmptyOrWhitespace
) {
var insertionSuccess = editor.edit((editBuilder) => {
editBuilder.insert(new vscode.Position(lineIndex, lineLength), ";lol"); // MOD HERE!
});
if (!insertionSuccess) return;
}
if (option === "hold") return;
// MOD HERE !
// option === 'endline'
// ? vscode.commands.executeCommand('cursorEnd')
// : vscode.commands.executeCommand('editor.action.insertLineAfter')
});
这是一个演示gif(哈哈,表明我做了修改):
重现步骤:
Version: 1.95.3 (user setup)
Commit: f1a4fb101478ce6ec82fe9627c43efbf9e98c813
Date: 2024-11-13T14:50:04.152Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.22631
首先确保您没有任何影响建议的扩展程序。 尝试直接覆盖这些键的行为,写入 keybindings.json
{
"key": "shift+enter",
"command": "colonize.insertSemicolonAtEndOfLine",
"when": "editorTextFocus"
}
您可以尝试通过写入settings.json来禁用自动完成功能
"editor.acceptSuggestionOnEnter": "off"
如果不太需要使用shift+enter,您可以更改绑定:)