- 自动修复:废弃 AI 修复,改 linter 原生 fix 多轮收敛;CodeAction hover + 面板修复/全部修复 + 快照 diff 撤销;hover 修复不入「已修复」列表、重新审查清空;修复/撤销后自动保存;单条修复只修目标问题(区间重叠收敛,不再连带相邻同规则) - 审查面板:内联 JS 外部化(reviewPanel.js)修复 CSP 屏蔽导致的修复按钮/行号跳转/tab 失效;面板操作不依赖文件焦点(resolveFixDocument);行号跳转定位已打开编辑器,不在面板列新开副本 - 静态分析:translatedDiagnostics 规则 ID 归一化配对 + 深度审查 prompt 强化,静态分析条目显示中文翻译与逐条 AI 建议 - 波浪线:诊断补 source/code,hover 显示快速修复链接 - SQLFluff:设置面板方言徽章(显式/全局/项目/内置来源配色)
52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
import * as esbuild from 'esbuild';
|
|
import { copyFileSync, mkdirSync, existsSync } from 'fs';
|
|
import { resolve, dirname } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
const rootDir = resolve(__dirname, '..');
|
|
const outDir = resolve(rootDir, 'out');
|
|
|
|
if (!existsSync(outDir)) {
|
|
mkdirSync(outDir, { recursive: true });
|
|
}
|
|
|
|
await esbuild.build({
|
|
entryPoints: [resolve(rootDir, 'src', 'extension.ts')],
|
|
bundle: true,
|
|
outfile: resolve(outDir, 'extension.js'),
|
|
external: [
|
|
'vscode',
|
|
'eslint',
|
|
'stylelint',
|
|
'child_process',
|
|
'fs',
|
|
'path',
|
|
'url',
|
|
'os',
|
|
],
|
|
format: 'cjs',
|
|
platform: 'node',
|
|
target: 'node22',
|
|
minify: true,
|
|
sourcemap: false,
|
|
treeShaking: true,
|
|
});
|
|
|
|
/* copy webview JS files */
|
|
const viewsSrc = resolve(rootDir, 'src', 'views');
|
|
const webviewDir = resolve(outDir, 'webview');
|
|
if (existsSync(viewsSrc)) {
|
|
const files = ['setupView.js', 'reviewPanel.js'];
|
|
for (const f of files) {
|
|
const src = resolve(viewsSrc, f);
|
|
const dest = resolve(webviewDir, f);
|
|
if (existsSync(src)) {
|
|
mkdirSync(dirname(dest), { recursive: true });
|
|
copyFileSync(src, dest);
|
|
}
|
|
}
|
|
}
|
|
|
|
console.log('Build complete.');
|