diff --git a/docs/errors/OXDT0004.md b/docs/errors/OXDT0004.md new file mode 100644 index 000000000..b284d5298 --- /dev/null +++ b/docs/errors/OXDT0004.md @@ -0,0 +1,24 @@ +--- +outline: deep +--- +# OXDT0004: Oxlint Config Inspection Failed + +## Message + +> Failed to inspect Oxlint config "`{configPath}`": `{reason}` + +## Cause + +The inspected config is outside the workspace, uses an unsupported format, cannot be loaded, or Oxlint did not return its built-in rule categories. + +## Example + +The RPC receives `../oxlint.config.ts` or an `oxlint.config.mts` file that the inspector cannot process. + +## Fix + +Select a supported Oxlint config inside the workspace and verify that Oxlint can read its rules. + +## Source + +- [`packages/oxc/src/node/rpc/functions/oxlint-inspect-config.ts`](https://github.com/vitejs/devtools/blob/main/packages/oxc/src/node/rpc/functions/oxlint-inspect-config.ts) — validates the config path and builds the complete rule configuration overview. diff --git a/docs/errors/index.md b/docs/errors/index.md index 9f3864e08..4c865edb8 100644 --- a/docs/errors/index.md +++ b/docs/errors/index.md @@ -77,3 +77,4 @@ Emitted by `@vitejs/devtools-oxc`. | [OXDT0001](./OXDT0001) | error | Failed to Create Lint Result | | [OXDT0002](./OXDT0002) | error | Invalid Lint Result ID | | [OXDT0003](./OXDT0003) | error | Failed to Delete Lint Result | +| [OXDT0004](./OXDT0004) | error | Oxlint Config Inspection Failed | diff --git a/packages/oxc/README.md b/packages/oxc/README.md index 5e35544f2..7513115a9 100644 --- a/packages/oxc/README.md +++ b/packages/oxc/README.md @@ -3,3 +3,8 @@ DevTools for Oxc — a built-in Vite DevTools integration that inspects the Oxc toolchain (oxlint and oxfmt). 📖 [Documentation](https://devtools.vite.dev/oxc/) + +# Credits + +- [nelsonlaidev/oxlint-config-inspector](https://github.com/nelsonlaidev/oxlint-config-inspector) +- [eslint/config-inspector](https://github.com/eslint/config-inspector) diff --git a/packages/oxc/package.json b/packages/oxc/package.json index 4993ad8ef..999a1da17 100644 --- a/packages/oxc/package.json +++ b/packages/oxc/package.json @@ -41,6 +41,7 @@ "prepack": "pnpm build" }, "dependencies": { + "@oxlint-config-inspector/core": "catalog:deps", "@vitejs/devtools-kit": "workspace:*", "cac": "catalog:deps", "devframe": "catalog:deps", diff --git a/packages/oxc/src/app/components/SummaryCard.vue b/packages/oxc/src/app/components/SummaryCard.vue index 8b65c0416..74326fe12 100644 --- a/packages/oxc/src/app/components/SummaryCard.vue +++ b/packages/oxc/src/app/components/SummaryCard.vue @@ -69,9 +69,16 @@ const configFiles = computed(() => {
diff --git a/packages/oxc/src/app/components/config/ConfigOptionSelectGroup.vue b/packages/oxc/src/app/components/config/ConfigOptionSelectGroup.vue new file mode 100644 index 000000000..18bbc40f3 --- /dev/null +++ b/packages/oxc/src/app/components/config/ConfigOptionSelectGroup.vue @@ -0,0 +1,38 @@ + + + diff --git a/packages/oxc/src/app/components/config/ConfigOverrides.vue b/packages/oxc/src/app/components/config/ConfigOverrides.vue new file mode 100644 index 000000000..2ef76078a --- /dev/null +++ b/packages/oxc/src/app/components/config/ConfigOverrides.vue @@ -0,0 +1,183 @@ + + + diff --git a/packages/oxc/src/app/components/config/ConfigOverview.vue b/packages/oxc/src/app/components/config/ConfigOverview.vue new file mode 100644 index 000000000..e4b887c90 --- /dev/null +++ b/packages/oxc/src/app/components/config/ConfigOverview.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/packages/oxc/src/app/components/config/ConfigRuleDetails.vue b/packages/oxc/src/app/components/config/ConfigRuleDetails.vue new file mode 100644 index 000000000..58068fe18 --- /dev/null +++ b/packages/oxc/src/app/components/config/ConfigRuleDetails.vue @@ -0,0 +1,112 @@ + + + diff --git a/packages/oxc/src/app/components/config/ConfigRules.vue b/packages/oxc/src/app/components/config/ConfigRules.vue new file mode 100644 index 000000000..8422a3823 --- /dev/null +++ b/packages/oxc/src/app/components/config/ConfigRules.vue @@ -0,0 +1,266 @@ + + + diff --git a/packages/oxc/src/app/pages/index.vue b/packages/oxc/src/app/pages/index.vue index e5ee4ab75..1339b645b 100644 --- a/packages/oxc/src/app/pages/index.vue +++ b/packages/oxc/src/app/pages/index.vue @@ -47,7 +47,7 @@ const tools = computed(() => { ...(oxlint.installed ? [ { title: 'Lint Inspector', icon: 'i-ph-magnifying-glass-duotone', to: '/oxlint/lint' }, - // { title: 'Config Inspector', icon: 'i-ph-gear-duotone', to: '/oxlint/config' }, + { title: 'Config Inspector', icon: 'i-ph-gear-duotone', to: '/oxlint/config' }, ] : []), { title: 'Documents', icon: 'i-ph-book-open-duotone', to: '/oxlint/documents' }, diff --git a/packages/oxc/src/app/pages/oxlint.vue b/packages/oxc/src/app/pages/oxlint.vue index 6a1f3dd62..1b37bbb45 100644 --- a/packages/oxc/src/app/pages/oxlint.vue +++ b/packages/oxc/src/app/pages/oxlint.vue @@ -13,11 +13,11 @@ useSideNav(() => [ icon: 'i-ph-magnifying-glass-duotone', to: '/oxlint/lint', }, - // { - // title: 'Config Inspector', - // icon: 'i-ph-gear-duotone', - // to: '/oxlint/config', - // }, + { + title: 'Config Inspector', + icon: 'i-ph-gear-duotone', + to: '/oxlint/config', + }, { title: 'Documents', icon: 'i-ph-book-open-duotone', @@ -31,7 +31,7 @@ useSideNav(() => [ class="grid grid-cols-[max-content_1fr] h-screen w-screen max-w-screen max-h-screen of-hidden" > -
+
diff --git a/packages/oxc/src/app/pages/oxlint/config.vue b/packages/oxc/src/app/pages/oxlint/config.vue index 3ba01d625..77ba09bd3 100644 --- a/packages/oxc/src/app/pages/oxlint/config.vue +++ b/packages/oxc/src/app/pages/oxlint/config.vue @@ -1,289 +1,242 @@