1.1.1 优化自动补全和悬浮显示
This commit is contained in:
71
dist/providers/apiParser.js
vendored
71
dist/providers/apiParser.js
vendored
@@ -40,7 +40,8 @@ const path = __importStar(require("path"));
|
||||
// API文档解析器类
|
||||
class ApiParser {
|
||||
constructor() {
|
||||
this.functions = [];
|
||||
this.functions = []; // 普通函数,不自动填写第一个参数
|
||||
this.functionEx = []; // 扩展函数,自动填写所有参数
|
||||
this.classes = [];
|
||||
this.constants = [];
|
||||
// 获取扩展路径并设置JSON文件路径
|
||||
@@ -65,6 +66,7 @@ class ApiParser {
|
||||
const apiData = JSON.parse(jsonData);
|
||||
// 加载函数数据
|
||||
this.functions = apiData.functions || [];
|
||||
this.functionEx = apiData.functionEx || [];
|
||||
// 加载类数据
|
||||
this.classes = apiData.classes || [];
|
||||
// 加载常量数据
|
||||
@@ -383,6 +385,7 @@ class ApiParser {
|
||||
try {
|
||||
const apiData = {
|
||||
functions: this.functions,
|
||||
functionEx: this.functionEx,
|
||||
classes: this.classes,
|
||||
constants: this.constants
|
||||
};
|
||||
@@ -396,13 +399,27 @@ class ApiParser {
|
||||
reloadApiDocumentation() {
|
||||
this.initializeApiDocumentation();
|
||||
}
|
||||
// 获取所有函数
|
||||
// 获取所有普通函数
|
||||
getFunctions() {
|
||||
return this.functions;
|
||||
}
|
||||
// 根据名称获取函数
|
||||
// 获取所有扩展函数
|
||||
getFunctionEx() {
|
||||
return this.functionEx;
|
||||
}
|
||||
// 根据名称获取函数(包括普通函数和扩展函数)
|
||||
getFunctionByName(name) {
|
||||
return this.functions.find(func => func.name === name);
|
||||
// 先在普通函数中查找
|
||||
let func = this.functions.find(func => func.name === name);
|
||||
if (func) {
|
||||
return func;
|
||||
}
|
||||
// 再在扩展函数中查找
|
||||
return this.functionEx.find(func => func.name === name);
|
||||
}
|
||||
// 检查是否是扩展函数
|
||||
isFunctionEx(name) {
|
||||
return this.functionEx.some(func => func.name === name);
|
||||
}
|
||||
// 获取所有类
|
||||
getClasses() {
|
||||
@@ -425,19 +442,41 @@ class ApiParser {
|
||||
return this.constants.find(constant => constant.name === name);
|
||||
}
|
||||
// 生成函数签名
|
||||
generateFunctionSignature(func) {
|
||||
const params = func.params.map(param => {
|
||||
let paramStr = param.name;
|
||||
if (param.optional) {
|
||||
paramStr = `[${paramStr}`;
|
||||
if (param.defaultValue) {
|
||||
paramStr += `=${param.defaultValue}`;
|
||||
generateFunctionSignature(func, isFunctionEx = false) {
|
||||
// 检查是否是普通函数且有参数
|
||||
if (!isFunctionEx && func.params.length > 0) {
|
||||
// 对于普通函数,将第一个参数移到函数名前面
|
||||
const firstParam = func.params[0];
|
||||
const remainingParams = func.params.slice(1);
|
||||
const params = remainingParams.map(param => {
|
||||
let paramStr = param.name;
|
||||
if (param.optional) {
|
||||
paramStr = `[${paramStr}`;
|
||||
if (param.defaultValue) {
|
||||
paramStr += `=${param.defaultValue}`;
|
||||
}
|
||||
paramStr += ']';
|
||||
}
|
||||
paramStr += ']';
|
||||
}
|
||||
return paramStr;
|
||||
}).join(', ');
|
||||
return `function ${func.name}(${params})${func.returns ? `: ${func.returns.type}` : ': void'}`;
|
||||
return paramStr;
|
||||
}).join(', ');
|
||||
const paramPart = params ? `(${params})` : '()';
|
||||
return `function ${firstParam.name}.${func.name}${paramPart}${func.returns ? `: ${func.returns.type}` : ': void'}`;
|
||||
}
|
||||
else {
|
||||
// 对于扩展函数或无参数的函数,保持原有格式
|
||||
const params = func.params.map(param => {
|
||||
let paramStr = param.name;
|
||||
if (param.optional) {
|
||||
paramStr = `[${paramStr}`;
|
||||
if (param.defaultValue) {
|
||||
paramStr += `=${param.defaultValue}`;
|
||||
}
|
||||
paramStr += ']';
|
||||
}
|
||||
return paramStr;
|
||||
}).join(', ');
|
||||
return `function ${func.name}(${params})${func.returns ? `: ${func.returns.type}` : ': void'}`;
|
||||
}
|
||||
}
|
||||
// 生成类签名
|
||||
generateClassSignature(cls) {
|
||||
|
||||
Reference in New Issue
Block a user