1.0.5 自动补全优化,补齐参数

This commit is contained in:
睿 安
2025-09-17 15:14:50 +08:00
parent 4375e6ef3f
commit 7f3d876e6a
4 changed files with 52 additions and 7 deletions

View File

@@ -101,7 +101,14 @@ class CompletionProvider {
const item = new vscode.CompletionItem(func.name, vscode.CompletionItemKind.Function);
item.detail = '内置函数';
item.documentation = new vscode.MarkdownString(`\`\`\`squirrel\n${this.apiParser.generateFunctionSignature(func)}\n\`\`\`\n${func.description}`);
item.insertText = func.name;
// 为函数创建带参数的插入文本
if (func.params.length > 0) {
const paramText = func.params.map((param, index) => `\${${index + 1}:${param.name}}`).join(', ');
item.insertText = new vscode.SnippetString(`${func.name}(${paramText})`);
}
else {
item.insertText = new vscode.SnippetString(`${func.name}()`);
}
return item;
});
}
@@ -155,7 +162,14 @@ class CompletionProvider {
const item = new vscode.CompletionItem(functionName, vscode.CompletionItemKind.Function);
item.detail = `函数 - ${func.filePath}`;
item.documentation = new vscode.MarkdownString(`\`\`\`squirrel\n${func.signature}\n\`\`\``);
item.insertText = functionName;
// 为函数创建带参数的插入文本
if (func.parameters.length > 0) {
const paramText = func.parameters.map((param, index) => `\${${index + 1}:${param}}`).join(', ');
item.insertText = new vscode.SnippetString(`${functionName}(${paramText})`);
}
else {
item.insertText = new vscode.SnippetString(`${functionName}()`);
}
completions.push(item);
}
else {
@@ -164,7 +178,14 @@ class CompletionProvider {
const item = new vscode.CompletionItem(`${functionName} (${func.filePath})`, vscode.CompletionItemKind.Function);
item.detail = `函数 - ${func.filePath}`;
item.documentation = new vscode.MarkdownString(`\`\`\`squirrel\n${func.signature}\n\`\`\``);
item.insertText = functionName;
// 为函数创建带参数的插入文本
if (func.parameters.length > 0) {
const paramText = func.parameters.map((param, index) => `\${${index + 1}:${param}}`).join(', ');
item.insertText = new vscode.SnippetString(`${functionName}(${paramText})`);
}
else {
item.insertText = new vscode.SnippetString(`${functionName}()`);
}
item.filterText = functionName;
completions.push(item);
});

File diff suppressed because one or more lines are too long