增加了按回车发送和检查更新

This commit is contained in:
Fang_Zhijian 2025-03-28 18:14:08 +08:00
parent d305361288
commit 7e4c81f2ea
5 changed files with 375 additions and 298 deletions

View File

@ -3,7 +3,7 @@
"uuid": "30c8ce0d81f546fea716ea111c508ab2", "uuid": "30c8ce0d81f546fea716ea111c508ab2",
"displayName": "EDA Copilot", "displayName": "EDA Copilot",
"description": "嘉立创 EDA 多模态大模型 AI 助手", "description": "嘉立创 EDA 多模态大模型 AI 助手",
"version": "1.1.0", "version": "1.1.1",
"publisher": "Mr_Fang <klxf@vip.qq.com>", "publisher": "Mr_Fang <klxf@vip.qq.com>",
"engines": { "engines": {
"eda": "^2.2.37" "eda": "^2.2.37"

File diff suppressed because one or more lines are too long

16
package-lock.json generated
View File

@ -1,18 +1,18 @@
{ {
"name": "eext-eda-copilot", "name": "eda-copilot",
"version": "1.1.0", "version": "1.1.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "eext-eda-copilot", "name": "eda-copilot",
"version": "1.1.0", "version": "1.1.1",
"license": "GNU GPLv3", "license": "GNU GPLv3",
"dependencies": { "dependencies": {
"@google/generative-ai": "^0.21.0" "@google/generative-ai": "^0.21.0"
}, },
"devDependencies": { "devDependencies": {
"@jlceda/pro-api-types": "^0.1.132", "@jlceda/pro-api-types": "^0.1.136",
"@microsoft/tsdoc": "^0.15.0", "@microsoft/tsdoc": "^0.15.0",
"@trivago/prettier-plugin-sort-imports": "^4.3.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/fs-extra": "^11.0.4", "@types/fs-extra": "^11.0.4",
@ -1000,9 +1000,9 @@
} }
}, },
"node_modules/@jlceda/pro-api-types": { "node_modules/@jlceda/pro-api-types": {
"version": "0.1.132", "version": "0.1.137",
"resolved": "https://registry.npmjs.org/@jlceda/pro-api-types/-/pro-api-types-0.1.132.tgz", "resolved": "https://registry.npmjs.org/@jlceda/pro-api-types/-/pro-api-types-0.1.137.tgz",
"integrity": "sha512-Qb9xVUR8SSRPkedp253XrUkjcW/mS7d+TcOkgPsF6GFL9FJ4gT624WAKXg7rOxxIXstfPD++7fmNpZqWeh30JQ==", "integrity": "sha512-QchyQva2Kj+H4qx4J+3pYNjnarYJ15ghEUG30fpQqC+QXzB3iUg40f47razD/v//xM11vdLp1zurthpRcPG3yg==",
"dev": true "dev": true
}, },
"node_modules/@jridgewell/gen-mapping": { "node_modules/@jridgewell/gen-mapping": {

View File

@ -1,6 +1,6 @@
{ {
"name": "eda-copilot", "name": "eda-copilot",
"version": "1.1.0", "version": "1.1.1",
"description": "EDA Copilot", "description": "EDA Copilot",
"author": "Mr_Fang <klxf@vip.qq.com>", "author": "Mr_Fang <klxf@vip.qq.com>",
"license": "GNU GPLv3", "license": "GNU GPLv3",
@ -14,7 +14,7 @@
"build": "npm run compile && ts-node ./build/packaged.ts" "build": "npm run compile && ts-node ./build/packaged.ts"
}, },
"devDependencies": { "devDependencies": {
"@jlceda/pro-api-types": "^0.1.132", "@jlceda/pro-api-types": "^0.1.136",
"@microsoft/tsdoc": "^0.15.0", "@microsoft/tsdoc": "^0.15.0",
"@trivago/prettier-plugin-sort-imports": "^4.3.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/fs-extra": "^11.0.4", "@types/fs-extra": "^11.0.4",

View File

@ -16,18 +16,68 @@ import * as extensionConfig from '../extension.json';
export function activate(status?: 'onStartupFinished', arg?: string): void {} export function activate(status?: 'onStartupFinished', arg?: string): void {}
export function openAbout(): void { export function openAbout(): void {
eda.sys_ClientUrl.request('https://api.github.com/repos/klxf/eda-copilot/releases/latest').then(async (res) => {
let updateTip = '';
if (res.status === 200) {
console.log('检查更新成功');
const data = JSON.parse(await res.text());
// 比较版本号
const latestVersion = data.tag_name;
if (compareVersions(extensionConfig.version, latestVersion.replaceAll('v', '')) < 0) {
updateTip = '(存在新版本' + latestVersion + '';
} else {
updateTip = '(已是最新版本)';
}
} else {
console.log('检查更新失败');
updateTip = '(检查更新失败)';
}
eda.sys_Dialog.showInformationMessage( eda.sys_Dialog.showInformationMessage(
extensionConfig.description + '\n' + extensionConfig.description +
'版本:' + extensionConfig.version + '\n' + '\n' +
'作者:' + extensionConfig.publisher + '\n' + '版本:' +
extensionConfig.version +
updateTip +
'\n' +
'作者:' +
extensionConfig.publisher +
'\n' +
'————————————————————\n' + '————————————————————\n' +
'本拓展使用 ' + extensionConfig.license + ' 开源许可协议\n' + '本拓展使用 ' +
'开源:' + extensionConfig.homepage + '\n' + extensionConfig.license +
'反馈:' + extensionConfig.bugs + '\n', ' 开源许可协议\n' +
'关于 ' + extensionConfig.displayName '开源:' +
extensionConfig.homepage +
'\n' +
'反馈:' +
extensionConfig.bugs +
'\n',
'关于 ' + extensionConfig.displayName,
); );
});
} }
export function openIframe(): void { export function openIframe(): void {
eda.sys_IFrame.openIFrame('/iframe/index.html', 400, 600); eda.sys_IFrame.openIFrame('/iframe/index.html', 400, 600);
} }
function compareVersions(version1: string, version2: string): number {
const v1Parts = version1.split('.');
const v2Parts = version2.split('.');
const maxLength = Math.max(v1Parts.length, v2Parts.length);
for (let i = 0; i < maxLength; i++) {
const part1 = parseInt(v1Parts[i] || '0', 10);
const part2 = parseInt(v2Parts[i] || '0', 10);
if (part1 < part2) {
return -1; // 后者版本号更高
} else if (part1 > part2) {
return 1; // 前者版本号更高
}
}
return 0; // 两个版本号相等
}