fix: JS 审查解析错误不静默丢弃 + flat config 守卫 + 面板 Stylelint 配置识别补齐
- eslint: ruleId===null 的致命解析错误产出 eslint:parse-error 诊断,不再静默丢弃(修复 no-octal / no-nonoctal-decimal-escape 不出结果) - ts.configs.recommended 逐项补 files 守卫,避免 TS parser 误报到 JS;新增 JS_FILES 独立 config 启用 JSX - setupView: stylelint 清单补齐 stylelint.config.mjs / stylelint.config.cjs,与适配器对齐 - 新增 3 个 adapter 测试,npm test 84 passing
This commit is contained in:
+23
-2
@@ -11,6 +11,8 @@ import { eslintExtraRules, eslintExtraTsRules } from '../rules/builtin-rules';
|
||||
|
||||
const TS_FILES = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];
|
||||
|
||||
const JS_FILES = ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.cjs'];
|
||||
|
||||
const PROJECT_CONFIG_FILES = [
|
||||
'eslint.config.js',
|
||||
'eslint.config.mjs',
|
||||
@@ -73,9 +75,14 @@ export class ESLintAdapter implements LinterAdapter {
|
||||
|
||||
public static getDefaultConfig(): any[] {
|
||||
if (!ESLintAdapter.defaultConfig) {
|
||||
const tsConfigs = ts.configs.recommended.map(cfg => ({
|
||||
...cfg,
|
||||
files: (cfg as { files?: string[] }).files ?? TS_FILES,
|
||||
}));
|
||||
ESLintAdapter.defaultConfig = [
|
||||
js.configs.recommended,
|
||||
...ts.configs.recommended,
|
||||
{ files: JS_FILES, languageOptions: { parserOptions: { ecmaFeatures: { jsx: true } } } },
|
||||
...tsConfigs,
|
||||
{ rules: eslintExtraRules },
|
||||
{ files: TS_FILES, rules: eslintExtraTsRules },
|
||||
];
|
||||
@@ -111,7 +118,21 @@ export class ESLintAdapter implements LinterAdapter {
|
||||
const diagnostics: LinterDiagnostic[] = [];
|
||||
for (const result of results) {
|
||||
for (const msg of result.messages) {
|
||||
if (msg.ruleId === null) { continue; }
|
||||
if (msg.ruleId === null) {
|
||||
if (!msg.fatal) { continue; }
|
||||
diagnostics.push({
|
||||
severity: 'error',
|
||||
ruleId: 'eslint:parse-error',
|
||||
message: msg.message,
|
||||
range: new vscode.Range(
|
||||
msg.line - 1,
|
||||
msg.column - 1,
|
||||
(msg.endLine ?? msg.line) - 1,
|
||||
(msg.endColumn ?? msg.column) - 1
|
||||
),
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
diagnostics.push({
|
||||
severity: msg.severity === 2 ? 'error' : 'warning',
|
||||
|
||||
@@ -90,7 +90,7 @@ const ADAPTER_METADATA: Record<string, {
|
||||
|
||||
const PROJECT_CONFIG_FILES: Record<string, string[]> = {
|
||||
eslint: ['eslint.config.js', 'eslint.config.mjs', 'eslint.config.cjs', 'eslint.config.ts', 'eslint.config.mts', 'eslint.config.cts'],
|
||||
stylelint: ['.stylelintrc.js', '.stylelintrc.json', '.stylelintrc.yaml', '.stylelintrc.yml', '.stylelintrc', 'stylelint.config.js'],
|
||||
stylelint: ['.stylelintrc.js', '.stylelintrc.json', '.stylelintrc.yaml', '.stylelintrc.yml', '.stylelintrc', 'stylelint.config.js', 'stylelint.config.mjs', 'stylelint.config.cjs'],
|
||||
pmd: ['ruleset.xml'],
|
||||
'sqlfluff': ['.sqlfluff'],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user