Skip to content

feat(maestro): enrich lsp markdown docs#2739

Merged
ubugeeei merged 1 commit into
mainfrom
feat/lsp-rich-markdown-docs
Jul 8, 2026
Merged

feat(maestro): enrich lsp markdown docs#2739
ubugeeei merged 1 commit into
mainfrom
feat/lsp-rich-markdown-docs

Conversation

@ubugeeei

@ubugeeei ubugeeei commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add shared Markdown helpers for LSP hover and completion documentation.
  • Enrich Vue/template/completion docs with fenced examples, docs sections, and syntax-highlightable code blocks.
  • Add coverage for richer hover and completion Markdown in Rust and LSP smoke tests.

Validation

  • cargo fmt --check
  • git diff --check
  • SOURCE_LENGTH_BASE_REF=origin/main node --test tests/tooling/source-file-lengths.test.ts
  • cargo test -p vize_maestro
  • cargo clippy -p vize_maestro -- -D warnings
  • cargo build -p vize
  • node --test tests/tooling/lsp-authoring-core.test.ts tests/tooling/lsp-editor-production-gates.test.ts

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.

Summary by CodeRabbit

  • New Features

    • Enhanced hover and completion details with richer Markdown formatting, including clearer examples, code blocks, and documentation links.
    • Added more informative Vue component prop and slot descriptions in autocomplete results.
  • Bug Fixes

    • Improved the consistency and readability of hover and completion content across Vue templates, directives, HTML attributes, and events.
    • Expanded validation to ensure documentation appears correctly in editor suggestions and hover tooltips.

@ubugeeei ubugeeei enabled auto-merge (squash) July 8, 2026 21:12
@pkg-pr-new

pkg-pr-new Bot commented Jul 8, 2026

Copy link
Copy Markdown

Open in StackBlitz

vize

pnpm add https://pkg.pr.new/vize@2739

@vizejs/fresco

pnpm add https://pkg.pr.new/@vizejs/fresco@2739

@vizejs/musea-mcp-server

pnpm add https://pkg.pr.new/@vizejs/musea-mcp-server@2739

oxlint-plugin-vize

pnpm add https://pkg.pr.new/oxlint-plugin-vize@2739

@vizejs/rspack-plugin

pnpm add https://pkg.pr.new/@vizejs/rspack-plugin@2739

@vizejs/unplugin

pnpm add https://pkg.pr.new/@vizejs/unplugin@2739

@vizejs/vite-plugin

pnpm add https://pkg.pr.new/@vizejs/vite-plugin@2739

@vizejs/vite-plugin-musea

pnpm add https://pkg.pr.new/@vizejs/vite-plugin-musea@2739

@vizejs/musea-nuxt

pnpm add https://pkg.pr.new/@vizejs/musea-nuxt@2739

@vizejs/nuxt

pnpm add https://pkg.pr.new/@vizejs/nuxt@2739

commit: 75b2541

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds a markup module providing a Markdown builder and helper functions for generating LSP Documentation/MarkupContent. Completion item generation, component prop/slot documentation, and hover builders are migrated to use this builder, with associated tests updated to assert the new Markdown output.

Changes

Markdown builder and its adoption

Layer / File(s) Summary
Markup module: Markdown builder and helpers
crates/vize_maestro/src/ide.rs, crates/vize_maestro/src/ide/markup.rs
Adds a new markup crate module exposing a Markdown builder with title/meta/paragraph/code/section/example/docs methods, plus code_block, link, snippet_for_docs, and Documentation/MarkupContent conversion helpers, with unit tests.
Completion items switched to Markdown builder
crates/vize_maestro/src/ide/completion/items.rs
Directive, vize-directive, component, api, macro, attr, and css completion item constructors now build documentation via Markdown::new() instead of manual MarkupContent, with new tests validating generated markdown.
Component prop/slot documentation helpers
crates/vize_maestro/src/ide/completion/template.rs, .../template/component_docs.rs, .../template/component_meta.rs, .../template/directives.rs
Adds component_docs module with prop_documentation/slot_documentation functions, and updates component_meta.rs and directives.rs completion item builders to call these helpers instead of inline markdown formatting.
Completion documentation assertions in tests
.../completion/component_props_tests.rs, .../completion/template/native_tests.rs, .../completion/template_event_tests.rs
Updates tests to collect completion items, extract documentation via markdown_doc helpers, and assert presence of expected Markdown/fenced-code content.
Hover builder migrated to markup module
crates/vize_maestro/src/ide/hover/builder.rs
HoverBuilder's code, example, link, build, and build_with_range methods now delegate to markup helpers; a new docs(...) method is added.
Hover call sites adopt example/docs builders
.../hover/component_prop.rs, .../hover/html.rs, .../hover/template.rs, tests/tooling/*.test.ts
Component prop, native HTML, and template directive/event hover generators switch from .code()/.link() to .example()/.docs(), adding Vue example snippets; hover tests and end-to-end tooling tests assert the new Markdown example sections.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CompletionService
  participant component_docs
  participant Markdown
  participant CompletionItem
  CompletionService->>component_docs: prop_documentation/slot_documentation
  component_docs->>Markdown: build title/meta/code/example sections
  Markdown-->>component_docs: Documentation
  component_docs-->>CompletionService: Documentation
  CompletionService->>CompletionItem: set documentation
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: enriching LSP Markdown documentation in maestro.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/lsp-rich-markdown-docs

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

PR Benchmark

Base: 69a44435d53923ef6eeba90f83da2b85e624bc4a Head: 75b2541cb9ade8b71c7e887480ed6eba4ad86596 Input: 1,000 generated SFC files
Median of 10 measured run(s) after 2 warmup run(s). Times are shown in milliseconds to 0.001ms. Rate is head/base, so below 1.000x is faster. Regression threshold: 5%.
Budget: passed.

Task Base Head Rate Result
Compile SFC 195.782ms 187.339ms 0.957x stable
Lint 126.023ms 126.580ms 1.004x stable
Format 154.346ms 151.697ms 0.983x stable
Type check (1T) 775.744ms 781.715ms 1.008x stable
Type check (max) 801.812ms 782.528ms 0.976x stable
Raw run times

Compile SFC

  • Base: 213.144ms, 188.264ms, 199.648ms, 197.042ms, 197.051ms, 186.972ms, 182.541ms, 181.139ms, 194.521ms, 203.066ms
  • Head: 210.720ms, 191.252ms, 183.426ms, 196.980ms, 183.170ms, 182.671ms, 181.166ms, 180.830ms, 192.104ms, 200.431ms

Lint

  • Base: 119.997ms, 125.081ms, 120.740ms, 126.654ms, 121.260ms, 125.392ms, 131.182ms, 135.658ms, 127.901ms, 135.400ms
  • Head: 125.817ms, 122.283ms, 128.649ms, 124.932ms, 125.778ms, 120.567ms, 128.491ms, 127.342ms, 137.147ms, 130.101ms

Format

  • Base: 164.021ms, 156.178ms, 155.671ms, 155.126ms, 153.566ms, 149.025ms, 152.958ms, 149.285ms, 156.284ms, 153.470ms
  • Head: 151.808ms, 147.946ms, 154.882ms, 148.804ms, 151.593ms, 156.170ms, 147.779ms, 155.968ms, 149.370ms, 151.801ms

Type check (1T)

  • Base: 775.159ms, 779.775ms, 795.623ms, 762.159ms, 782.503ms, 761.932ms, 795.341ms, 771.070ms, 767.227ms, 776.330ms
  • Head: 791.355ms, 782.273ms, 797.641ms, 770.498ms, 755.444ms, 755.641ms, 781.157ms, 765.331ms, 813.512ms, 795.646ms

Type check (max)

  • Base: 819.225ms, 809.954ms, 774.014ms, 767.675ms, 767.127ms, 780.384ms, 793.669ms, 883.462ms, 1,138.769ms, 981.070ms
  • Head: 772.258ms, 842.018ms, 777.145ms, 762.766ms, 784.390ms, 780.462ms, 780.666ms, 788.701ms, 1,091.738ms, 987.997ms

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Detailed Test Report

Commit: 75b2541cb9ad
Workflow: Check #28976048597
Attempt: 1
Overall: in_progress (1 in_progress, 3 skipped, 25 success)
Wall Time: 5m 12s

Area Summary

Area Jobs Result Runner Time
JS / TS 1 success 1m 3s
Rust 3 success 4m 58s
E2E / VRT 1 success 3m 12s
Infra 1 skipped 0s
Other 23 in_progress 24m 39s

Test Inventory

Total tracked cases: 8644 across 1221 files.

Area Files Cases
Compiler Fixtures 43 1270
E2E 16 149
JS / TS 254 1067
Rust 903 6147
VRT 5 11
Files
Area File Cases
Compiler Fixtures tests/fixtures/errors/parse-errors.pkl 38
Compiler Fixtures tests/fixtures/errors/transform-errors.pkl 44
Compiler Fixtures tests/fixtures/parser/attribute.pkl 16
Compiler Fixtures tests/fixtures/parser/comment.pkl 55
Compiler Fixtures tests/fixtures/parser/directive.pkl 143
Compiler Fixtures tests/fixtures/parser/element.pkl 35
Compiler Fixtures tests/fixtures/parser/interpolation.pkl 85
Compiler Fixtures tests/fixtures/parser/text.pkl 68
Compiler Fixtures tests/fixtures/sfc/basic.pkl 13
Compiler Fixtures tests/fixtures/sfc/define-model.pkl 17
Compiler Fixtures tests/fixtures/sfc/directives.pkl 5
Compiler Fixtures tests/fixtures/sfc/options-api.pkl 39
Compiler Fixtures tests/fixtures/sfc/patches.pkl 58
Compiler Fixtures tests/fixtures/sfc/props-destructure.pkl 4
Compiler Fixtures tests/fixtures/sfc/script-setup-advanced.pkl 6
Compiler Fixtures tests/fixtures/sfc/script-setup.pkl 69
Compiler Fixtures tests/fixtures/vapor/component.pkl 17
Compiler Fixtures tests/fixtures/vapor/edge-cases.pkl 4
Compiler Fixtures tests/fixtures/vapor/element.pkl 16
Compiler Fixtures tests/fixtures/vapor/parity-core-directives.pkl 8
Compiler Fixtures tests/fixtures/vapor/v-bind.pkl 12
Compiler Fixtures tests/fixtures/vapor/v-for.pkl 10
Compiler Fixtures tests/fixtures/vapor/v-if.pkl 7
Compiler Fixtures tests/fixtures/vapor/v-model.pkl 13
Compiler Fixtures tests/fixtures/vapor/v-on.pkl 14
Compiler Fixtures tests/fixtures/vapor/v-show.pkl 6
Compiler Fixtures tests/fixtures/vapor/v-slot.pkl 10
Compiler Fixtures tests/fixtures/vdom/component.pkl 45
Compiler Fixtures tests/fixtures/vdom/directives.pkl 24
Compiler Fixtures tests/fixtures/vdom/dynamic-component.pkl 9
Compiler Fixtures tests/fixtures/vdom/element.pkl 44
Compiler Fixtures tests/fixtures/vdom/hoisting.pkl 20
Compiler Fixtures tests/fixtures/vdom/html-entities.pkl 9
Compiler Fixtures tests/fixtures/vdom/parity-core-directives.pkl 8
Compiler Fixtures tests/fixtures/vdom/patch-flags.pkl 32
Compiler Fixtures tests/fixtures/vdom/v-bind.pkl 56
Compiler Fixtures tests/fixtures/vdom/v-for.pkl 28
Compiler Fixtures tests/fixtures/vdom/v-if.pkl 25
Compiler Fixtures tests/fixtures/vdom/v-model.pkl 31
Compiler Fixtures tests/fixtures/vdom/v-on.pkl 62
Compiler Fixtures tests/fixtures/vdom/v-once.pkl 16
Compiler Fixtures tests/fixtures/vdom/v-show.pkl 19
Compiler Fixtures tests/fixtures/vdom/v-slot.pkl 30
E2E playground/e2e/atelier-output-tabs.test.ts 1
E2E playground/e2e/components.test.ts 16
E2E playground/e2e/css-compile.test.ts 17
E2E playground/e2e/edge-cases.test.ts 26
E2E playground/e2e/sfc-compile.test.ts 21
E2E playground/e2e/vite-plugin-vapor.test.ts 12
E2E playground/e2e/wasm.test.ts 12
E2E tests/app/dev/elk.spec.ts 9
E2E tests/app/dev/misskey.spec.ts 7
E2E tests/app/dev/npmx.spec.ts 14
E2E tests/app/dev/nuxt-ui.spec.ts 3
E2E tests/app/dev/vuefes.spec.ts 7
E2E tests/app/preview/elk.ts 1
E2E tests/app/preview/misskey.ts 1
E2E tests/app/preview/npmx.ts 1
E2E tests/app/preview/vuefes.ts 1
JS / TS docs/theme/background.test.ts 2
JS / TS docs/theme/navigation.test.js 4
JS / TS docs/theme/syntax-highlight.test.js 8
JS / TS npm/builder/rspack/src/integration.test.ts 2
JS / TS npm/builder/rspack/src/jsx.test.ts 3
JS / TS npm/builder/rspack/src/plugin/index.test.ts 8
JS / TS npm/builder/rspack/src/plugin/ruleCloning.test.ts 15
JS / TS npm/builder/rspack/src/scoped-css.test.ts 5
JS / TS npm/builder/rspack/src/shared/jsx-compile.test.ts 4
JS / TS npm/builder/rspack/src/shared/nativeCss.test.ts 10
JS / TS npm/builder/rspack/src/shared/output.test.ts 4
JS / TS npm/builder/rspack/src/shared/utils.test.ts 35
JS / TS npm/builder/rspack/src/vapor.test.ts 3
JS / TS npm/builder/unplugin/src/core.test.ts 1
JS / TS npm/builder/unplugin/src/css-preprocessors.test.ts 5
JS / TS npm/builder/unplugin/src/esbuild-hooks.test.ts 13
JS / TS npm/builder/unplugin/src/esbuild.test.ts 1
JS / TS npm/builder/unplugin/src/filter-edge.test.ts 10
JS / TS npm/builder/unplugin/src/filter.test.ts 3
JS / TS npm/builder/unplugin/src/jsx.test.ts 6
JS / TS npm/builder/unplugin/src/normalize-options.test.ts 16
JS / TS npm/builder/unplugin/src/plugin-hooks.test.ts 11
JS / TS npm/builder/unplugin/src/request.test.ts 16
JS / TS npm/builder/unplugin/src/rolldown.test.ts 6
JS / TS npm/builder/unplugin/src/rollup.test.ts 1
JS / TS npm/builder/unplugin/src/strip-types-edge.test.ts 9
JS / TS npm/builder/unplugin/src/strip-types.test.ts 1
JS / TS npm/builder/unplugin/src/style-output.test.ts 18
JS / TS npm/builder/unplugin/src/style.test.ts 1
JS / TS npm/builder/unplugin/src/template-preprocessors.test.ts 4
JS / TS npm/builder/unplugin/src/vapor.test.ts 3
JS / TS npm/builder/unplugin/src/webpack-cjs.test.ts 3
JS / TS npm/builder/unplugin/src/webpack-defines-edge.test.ts 11
JS / TS npm/builder/unplugin/src/webpack.test.ts 2
JS / TS npm/builder/vite-musea/src/api-routes/arts-order.test.ts 1
JS / TS npm/builder/vite-musea/src/api-routes/handler-palette.test.ts 1
JS / TS npm/builder/vite-musea/src/api-routes/index.projectroot.test.ts 2
JS / TS npm/builder/vite-musea/src/api-routes/index.test.ts 6
JS / TS npm/builder/vite-musea/src/art-module-helper-collisions.test.ts 1
JS / TS npm/builder/vite-musea/src/art-module.test.ts 10
JS / TS npm/builder/vite-musea/src/art-order.test.ts 1
JS / TS npm/builder/vite-musea/src/autogen/generate.test.ts 1
JS / TS npm/builder/vite-musea/src/autogen/native-shape.test.ts 1
JS / TS npm/builder/vite-musea/src/cli/commands.test.ts 4
JS / TS npm/builder/vite-musea/src/cli/utils.test.ts 1
JS / TS npm/builder/vite-musea/src/gallery/template.test.ts 2
JS / TS npm/builder/vite-musea/src/native-loader.test.ts 1
JS / TS npm/builder/vite-musea/src/palette-state.test.ts 2
JS / TS npm/builder/vite-musea/src/plugin/art-processing.test.ts 2
JS / TS npm/builder/vite-musea/src/plugin/index.test.ts 7
JS / TS npm/builder/vite-musea/src/plugin/storybook-inputs.test.ts 3
JS / TS npm/builder/vite-musea/src/plugin/virtual-transform.test.ts 2
JS / TS npm/builder/vite-musea/src/plugin/vue-alias.test.ts 3
JS / TS npm/builder/vite-musea/src/plugin/watch.test.ts 3
JS / TS npm/builder/vite-musea/src/preview-vue2.test.ts 2
JS / TS npm/builder/vite-musea/src/preview/html.test.ts 1
JS / TS npm/builder/vite-musea/src/security.test.ts 6
JS / TS npm/builder/vite-musea/src/server-middleware.test.ts 4
JS / TS npm/builder/vite-musea/src/static-build-vue2.test.ts 1
JS / TS npm/builder/vite-musea/src/static-build.test.ts 5
JS / TS npm/builder/vite-musea/src/static-export.test.ts 6
JS / TS npm/builder/vite-musea/src/tokens.test.ts 7
JS / TS npm/builder/vite-musea/src/tokens/css-length.test.ts 1
JS / TS npm/builder/vite-musea/src/tokens/preview.test.ts 4
JS / TS npm/builder/vite-musea/src/utils.test.ts 5
JS / TS npm/builder/vite/src/output-ast.test.ts 2
JS / TS npm/builder/vite/src/utils-filter.test.ts 4
JS / TS npm/builder/vite/src/utils.test.ts 17
JS / TS npm/framework/musea-nuxt/src/mocks.test.ts 5
JS / TS npm/framework/musea-nuxt/src/plugin.test.ts 3
JS / TS npm/framework/nuxt/src/components-edge.test.ts 18
JS / TS npm/framework/nuxt/src/components.test.ts 8
JS / TS npm/framework/nuxt/src/dev-html-edge.test.ts 11
JS / TS npm/framework/nuxt/src/i18n-edge.test.ts 10
JS / TS npm/framework/nuxt/src/index-nuxt2-musea.test.ts 1
JS / TS npm/framework/nuxt/src/index.test.ts 6
JS / TS npm/framework/nuxt/src/musea-components.test.ts 3
JS / TS npm/framework/nuxt/src/options-edge.test.ts 16
JS / TS npm/framework/nuxt/src/unocss-edge.test.ts 11
JS / TS npm/framework/nuxt/src/unocss.test.ts 3
JS / TS npm/framework/nuxt/src/utils-edge.test.ts 24
JS / TS npm/mcp-musea/src/musea.test.ts 2
JS / TS npm/mcp-musea/src/tools/handler/index.test.ts 2
JS / TS npm/oxint/src/cli/files.test.ts 3
JS / TS npm/oxint/src/cli/output.test.ts 3
JS / TS npm/oxint/src/configs.ts 5
JS / TS npm/oxint/src/native.ts 3
JS / TS npm/oxint/src/settings.ts 5
JS / TS npm/oxint/src/workaround.ts 3
JS / TS playground/src/features/atelier/codeOutputs.test.ts 4
JS / TS playground/src/features/atelier/formatters.test.ts 2
JS / TS playground/src/features/cross-file/utils.test.ts 3
JS / TS playground/src/features/inspector/compareCompilers.test.ts 2
JS / TS playground/src/features/inspector/diffRows.test.ts 4
JS / TS playground/src/features/inspector/share.test.ts 4
JS / TS playground/src/simple.test.ts 2
JS / TS playground/src/utils/position.test.ts 2
JS / TS tests/snapshots/build/elk.ts 2
JS / TS tests/snapshots/build/generic.ts 1
JS / TS tests/snapshots/build/misskey.ts 2
JS / TS tests/snapshots/build/npmx.ts 2
JS / TS tests/snapshots/build/vuefes.ts 2
JS / TS tests/snapshots/check/ant-design-vue.ts 1
JS / TS tests/snapshots/check/class-component.ts 2
JS / TS tests/snapshots/check/compiler-macros.ts 1
JS / TS tests/snapshots/check/directus.ts 1
JS / TS tests/snapshots/check/ecosystem-products.ts 1
JS / TS tests/snapshots/check/element-plus.ts 1
JS / TS tests/snapshots/check/elk.ts 1
JS / TS tests/snapshots/check/frontend-phpcon.ts 1
JS / TS tests/snapshots/check/generic-build.ts 1
JS / TS tests/snapshots/check/hoppscotch.ts 1
JS / TS tests/snapshots/check/misskey.ts 1
JS / TS tests/snapshots/check/naive-ui.ts 1
JS / TS tests/snapshots/check/npmx.ts 1
JS / TS tests/snapshots/check/nuxt-parity.ts 4
JS / TS tests/snapshots/check/nuxt-ui.ts 1
JS / TS tests/snapshots/check/options-api.ts 3
JS / TS tests/snapshots/check/primevue.ts 1
JS / TS tests/snapshots/check/reka-ui.ts 1
JS / TS tests/snapshots/check/style-preprocessors.ts 1
JS / TS tests/snapshots/check/toolchain-parity.ts 2
JS / TS tests/snapshots/check/typecheck-errors.ts 1
JS / TS tests/snapshots/check/typecheck-vue-imports.ts 1
JS / TS tests/snapshots/check/voicevox.ts 1
JS / TS tests/snapshots/check/vue-vben-admin.ts 1
JS / TS tests/snapshots/check/vuefes.ts 1
JS / TS tests/snapshots/check/vuetify.ts 1
JS / TS tests/snapshots/check/zz-intentional-errors-fixtures.ts 1
JS / TS tests/snapshots/check/zz-intentional-errors-realworld.ts 2
JS / TS tests/snapshots/inspect/elk.ts 1
JS / TS tests/snapshots/inspect/npmx.ts 1
JS / TS tests/snapshots/inspect/vuefes.ts 1
JS / TS tests/snapshots/lint/ant-design-vue.ts 1
JS / TS tests/snapshots/lint/directus.ts 1
JS / TS tests/snapshots/lint/element-plus.ts 1
JS / TS tests/snapshots/lint/elk.ts 1
JS / TS tests/snapshots/lint/hoppscotch.ts 1
JS / TS tests/snapshots/lint/misskey.ts 1
JS / TS tests/snapshots/lint/naive-ui.ts 1
JS / TS tests/snapshots/lint/npmx.ts 1
JS / TS tests/snapshots/lint/nuxt-ui.ts 1
JS / TS tests/snapshots/lint/primevue.ts 1
JS / TS tests/snapshots/lint/reka-ui.ts 1
JS / TS tests/snapshots/lint/voicevox.ts 1
JS / TS tests/snapshots/lint/vue-vben-admin.ts 1
JS / TS tests/snapshots/lint/vuefes.ts 1
JS / TS tests/snapshots/lint/vuetify.ts 1
JS / TS tests/tooling/benchmark-budget.test.ts 6
JS / TS tests/tooling/benchmark-generator.test.ts 2
JS / TS tests/tooling/bundler-plugin-manifests.test.ts 5
JS / TS tests/tooling/cli-check-args.test.ts 6
JS / TS tests/tooling/cli-check-collection.test.ts 4
JS / TS tests/tooling/cli-check-contract.test.ts 6
JS / TS tests/tooling/cli-check-diagnostics.test.ts 8
JS / TS tests/tooling/cli-check-json-shape.test.ts 5
JS / TS tests/tooling/cli-fmt-contract.test.ts 5
JS / TS tests/tooling/cli-lint-contract.test.ts 7
JS / TS tests/tooling/cli-top-level.test.ts 5
JS / TS tests/tooling/compiler-fixture-diff-report.test.ts 2
JS / TS tests/tooling/config-alias-entries.test.ts 6
JS / TS tests/tooling/config-json-errors.test.ts 4
JS / TS tests/tooling/config-json-shape.test.ts 7
JS / TS tests/tooling/config-loading.test.ts 4
JS / TS tests/tooling/config-resolution.test.ts 10
JS / TS tests/tooling/config-types.test.ts 1
JS / TS tests/tooling/dev-app.test.ts 4
JS / TS tests/tooling/docs-browser.test.ts 2
JS / TS tests/tooling/docs-stability.test.ts 1
JS / TS tests/tooling/e2e-binaries.test.ts 3
JS / TS tests/tooling/e2e-tasks.test.ts 2
JS / TS tests/tooling/e2e-workflow.test.ts 1
JS / TS tests/tooling/ecosystem-product-coverage.test.ts 2
JS / TS tests/tooling/editor-integrations-consistency.test.ts 2
JS / TS tests/tooling/editor-integrations-emacs.test.ts 5
JS / TS tests/tooling/editor-integrations-helix.test.ts 4
JS / TS tests/tooling/editor-integrations-neovim.test.ts 4
JS / TS tests/tooling/editor-integrations-vim.test.ts 4
JS / TS tests/tooling/editor-integrations-vscode-art.test.ts 2
JS / TS tests/tooling/editor-integrations-zed.test.ts 4
JS / TS tests/tooling/editor-integrations.test.ts 6
JS / TS tests/tooling/editor-language-configuration.test.ts 7
JS / TS tests/tooling/editor-lsp-adapters.test.ts 1
JS / TS tests/tooling/editor-profiles-consistency.test.ts 3
JS / TS tests/tooling/fuzz-setup.test.ts 4
JS / TS tests/tooling/github-comments.test.ts 2
JS / TS tests/tooling/github-workflows-benchmark.test.ts 4
JS / TS tests/tooling/github-workflows-check.test.ts 11
JS / TS tests/tooling/github-workflows-release-build.test.ts 12
JS / TS tests/tooling/github-workflows-release-publish.test.ts 8
JS / TS tests/tooling/github-workflows-setup.test.ts 11
JS / TS tests/tooling/github-workflows.test.ts 10
JS / TS tests/tooling/github-zig-musl-linkers.test.ts 2
JS / TS tests/tooling/issue-pr-title-policy.test.ts 3
JS / TS tests/tooling/jsx-ecosystem-fixtures.test.ts 4
JS / TS tests/tooling/language-engineering-practices.test.ts 3
JS / TS tests/tooling/lsp-authoring-core.test.ts 1
JS / TS tests/tooling/lsp-capabilities.test.ts 3
JS / TS tests/tooling/lsp-definition-navigation.test.ts 1
JS / TS tests/tooling/lsp-diagnostics-lifecycle.test.ts 4
JS / TS tests/tooling/lsp-document-features.test.ts 7
JS / TS tests/tooling/lsp-document-highlight.test.ts 4
JS / TS tests/tooling/lsp-document-link.test.ts 2
JS / TS tests/tooling/lsp-editor-feature-isolation.test.ts 15
JS / TS tests/tooling/lsp-editor-feature-matrix.test.ts 11
JS / TS tests/tooling/lsp-editor-feature-routing.test.ts 1
JS / TS tests/tooling/lsp-editor-production-gates.test.ts 1
JS / TS tests/tooling/lsp-file-rename-workspace.test.ts 4
JS / TS tests/tooling/lsp-hover-template.test.ts 1
JS / TS tests/tooling/lsp-inlay-codelens.test.ts 3
JS / TS tests/tooling/lsp-protocol-resilience.test.ts 5
JS / TS tests/tooling/lsp-rename-guards.test.ts 2
JS / TS tests/tooling/lsp-roadmap-completion.test.ts 1
JS / TS tests/tooling/lsp-smoke.test.ts 6
JS / TS tests/tooling/lsp-template-completion.test.ts 1
JS / TS tests/tooling/lsp-workspace-semantic.test.ts 3
JS / TS tests/tooling/moonbit-generate-rule-types.test.ts 1
JS / TS tests/tooling/moonbit-github-scripts.test.ts 9
JS / TS tests/tooling/moonbit-helper.test.ts 2
JS / TS tests/tooling/moonbit-postprocess-types.test.ts 1
JS / TS tests/tooling/moonbit-publish-crates.test.ts 6
JS / TS tests/tooling/moonbit-publish-open-vsx.test.ts 2
JS / TS tests/tooling/moonbit-publish.test.ts 11
JS / TS tests/tooling/moonbit-release.test.ts 6
JS / TS tests/tooling/moonbit-rust-source-coverage.test.ts 4
JS / TS tests/tooling/moonbit-warnings.test.ts 1
JS / TS tests/tooling/native-legacy-build.test.ts 2
JS / TS tests/tooling/native-loader.test.ts 2
JS / TS tests/tooling/native-smoke-workflow.test.ts 1
JS / TS tests/tooling/node-engine-matrix.test.ts 3
JS / TS tests/tooling/normalize-global-types.test.ts 4
JS / TS tests/tooling/package-manifests.test.ts 17
JS / TS tests/tooling/playwright-app-config.test.ts 1
JS / TS tests/tooling/playwright-vrt-config.test.ts 1
JS / TS tests/tooling/production-readiness.test.ts 3
JS / TS tests/tooling/readme-boundary.test.ts 2
JS / TS tests/tooling/realworld-snapshot-scripts.test.ts 1
JS / TS tests/tooling/release-changelog.test.ts 2
JS / TS tests/tooling/release-package-versions.test.ts 1
JS / TS tests/tooling/release-platforms.test.ts 3
JS / TS tests/tooling/release-readiness.test.ts 4
JS / TS tests/tooling/release-smoke-install.test.ts 6
JS / TS tests/tooling/repo-governance.test.ts 5
JS / TS tests/tooling/runtime-and-build-stack.test.ts 5
JS / TS tests/tooling/snapshot-baselines.test.ts 3
JS / TS tests/tooling/source-file-lengths.test.ts 3
JS / TS tests/tooling/task-shell.test.ts 13
JS / TS tests/tooling/tool-benchmark.test.ts 2
JS / TS tests/tooling/vscode-extension-core-behavior.test.ts 15
JS / TS tests/tooling/vscode-extension-manifest.test.ts 9
JS / TS tests/tooling/vscode-typescript-vue-plugin.test.ts 9
JS / TS tests/tooling/vscode-vize-template-grammar.test.ts 5
JS / TS tests/tooling/vue-ecosystem-fixtures.test.ts 6
JS / TS tests/tooling/wasm-package-smoke.test.ts 2
Rust crates/vize_armature/src/legacy.rs 7
Rust crates/vize_armature/src/parser/experimental_tests.rs 4
Rust crates/vize_armature/src/parser/tests.rs 95
Rust crates/vize_armature/src/tokenizer/entity_decode.rs 11
Rust crates/vize_armature/src/tokenizer/tests.rs 72
Rust crates/vize_atelier_core/src/codegen/expression/generate.rs 6
Rust crates/vize_atelier_core/src/codegen/helpers.rs 5
Rust crates/vize_atelier_core/src/codegen/slots/tests.rs 7
Rust crates/vize_atelier_core/src/codegen/source_map.rs 9
Rust crates/vize_atelier_core/src/codegen/tests.rs 68
Rust crates/vize_atelier_core/src/codegen/v_for/helpers.rs 4
Rust crates/vize_atelier_core/src/lane/tests.rs 12
Rust crates/vize_atelier_core/src/runtime_helpers.rs 2
Rust crates/vize_atelier_core/src/test_macros.rs 9
Rust crates/vize_atelier_core/src/transform/element.rs 7
Rust crates/vize_atelier_core/src/transform/structural.rs 3
Rust crates/vize_atelier_core/src/transforms/hoist_static.rs 11
Rust crates/vize_atelier_core/src/transforms/legacy_filters.rs 15
Rust crates/vize_atelier_core/src/transforms/legacy.rs 16
Rust crates/vize_atelier_core/src/transforms/transform_element.rs 2
Rust crates/vize_atelier_core/src/transforms/transform_expression.rs 11
Rust crates/vize_atelier_core/src/transforms/transform_expression/inline_handler.rs 2
Rust crates/vize_atelier_core/src/transforms/transform_expression/prefix.rs 2
Rust crates/vize_atelier_core/src/transforms/transform_expression/typescript.rs 7
Rust crates/vize_atelier_core/src/transforms/transform_text.rs 3
Rust crates/vize_atelier_core/src/transforms/v_bind.rs 1
Rust crates/vize_atelier_core/src/transforms/v_for.rs 9
Rust crates/vize_atelier_core/src/transforms/v_if.rs 2
Rust crates/vize_atelier_core/src/transforms/v_memo.rs 2
Rust crates/vize_atelier_core/src/transforms/v_model.rs 2
Rust crates/vize_atelier_core/src/transforms/v_on.rs 4
Rust crates/vize_atelier_core/src/transforms/v_once.rs 2
Rust crates/vize_atelier_core/src/transforms/v_slot.rs 14
Rust crates/vize_atelier_core/tests/conditional_named_slots.rs 2
Rust crates/vize_atelier_core/tests/dynamic_slot_forwarding.rs 1
Rust crates/vize_atelier_core/tests/legacy_event_modifiers.rs 9
Rust crates/vize_atelier_core/tests/legacy_filters.rs 11
Rust crates/vize_atelier_core/tests/legacy_template_sugar.rs 10
Rust crates/vize_atelier_core/tests/scoped_slot_shadowing.rs 1
Rust crates/vize_atelier_dom/src/experimental_tests.rs 2
Rust crates/vize_atelier_dom/src/options.rs 7
Rust crates/vize_atelier_dom/src/steps/v_html.rs 5
Rust crates/vize_atelier_dom/src/steps/v_model.rs 7
Rust crates/vize_atelier_dom/src/steps/v_on.rs 10
Rust crates/vize_atelier_dom/src/steps/v_show.rs 5
Rust crates/vize_atelier_dom/src/steps/v_text.rs 6
Rust crates/vize_atelier_dom/src/tests.rs 27
Rust crates/vize_atelier_dom/tests/dom_snapshot.rs 24
Rust crates/vize_atelier_dom/tests/invalid_expression_diagnostics.rs 6
Rust crates/vize_atelier_dom/tests/setup_component_unref.rs 2
Rust crates/vize_atelier_jsx/src/compile.rs 5
Rust crates/vize_atelier_jsx/src/compile/render_exports.rs 2
Rust crates/vize_atelier_jsx/src/diagnostics.rs 1
Rust crates/vize_atelier_jsx/src/lang.rs 4
Rust crates/vize_atelier_jsx/src/lower/text.rs 5
Rust crates/vize_atelier_jsx/src/mode.rs 7
Rust crates/vize_atelier_jsx/src/parse.rs 7
Rust crates/vize_atelier_jsx/src/span.rs 4
Rust crates/vize_atelier_jsx/tests/adversarial_snapshots.rs 9
Rust crates/vize_atelier_jsx/tests/analysis.rs 5
Rust crates/vize_atelier_jsx/tests/attributes.rs 11
Rust crates/vize_atelier_jsx/tests/children.rs 8
Rust crates/vize_atelier_jsx/tests/compile.rs 11
Rust crates/vize_atelier_jsx/tests/components.rs 7
Rust crates/vize_atelier_jsx/tests/control_flow.rs 2
Rust crates/vize_atelier_jsx/tests/diagnostics.rs 6
Rust crates/vize_atelier_jsx/tests/directives.rs 8
Rust crates/vize_atelier_jsx/tests/ecosystem_smoke.rs 1
Rust crates/vize_atelier_jsx/tests/edge_cases.rs 5
Rust crates/vize_atelier_jsx/tests/elements.rs 10
Rust crates/vize_atelier_jsx/tests/events.rs 2
Rust crates/vize_atelier_jsx/tests/fragments.rs 4
Rust crates/vize_atelier_jsx/tests/modes.rs 13
Rust crates/vize_atelier_jsx/tests/parity_tsx.rs 7
Rust crates/vize_atelier_jsx/tests/parity_vapor.rs 3
Rust crates/vize_atelier_jsx/tests/parity_vdom.rs 1
Rust crates/vize_atelier_jsx/tests/slots.rs 4
Rust crates/vize_atelier_jsx/tests/ssr.rs 3
Rust crates/vize_atelier_jsx/tests/style.rs 9
Rust crates/vize_atelier_jsx/tests/tsx.rs 5
Rust crates/vize_atelier_jsx/tests/vapor_ssr.rs 5
Rust crates/vize_atelier_jsx/tests/vapor.rs 6
Rust crates/vize_atelier_jsx/tests/vdom.rs 5
Rust crates/vize_atelier_sfc/src/bundler/tests.rs 11
Rust crates/vize_atelier_sfc/src/compile_script/artifacts.rs 10
Rust crates/vize_atelier_sfc/src/compile_script/import_utils.rs 6
Rust crates/vize_atelier_sfc/src/compile_script/inline/compiler/props.rs 1
Rust crates/vize_atelier_sfc/src/compile_script/inline/compiler/setup_emit.rs 4
Rust crates/vize_atelier_sfc/src/compile_script/inline/define_model_tests.rs 1
Rust crates/vize_atelier_sfc/src/compile_script/inline/tests.rs 27
Rust crates/vize_atelier_sfc/src/compile_script/inline/type_handling.rs 3
Rust crates/vize_atelier_sfc/src/compile_script/lazy_hydration.rs 3
Rust crates/vize_atelier_sfc/src/compile_script/macros.rs 5
Rust crates/vize_atelier_sfc/src/compile_script/props/tests.rs 11
Rust crates/vize_atelier_sfc/src/compile_script/statement_sections.rs 6
Rust crates/vize_atelier_sfc/src/compile_script/tests.rs 47
Rust crates/vize_atelier_sfc/src/compile_template/tests.rs 27
Rust crates/vize_atelier_sfc/src/compile/tests.rs 88
Rust crates/vize_atelier_sfc/src/compile/tests/define_props_regressions.rs 4
Rust crates/vize_atelier_sfc/src/compile/tests/options_api_events.rs 2
Rust crates/vize_atelier_sfc/src/croquis.rs 1
Rust crates/vize_atelier_sfc/src/css/tests.rs 31
Rust crates/vize_atelier_sfc/src/css/tests/scoped_regressions.rs 5
Rust crates/vize_atelier_sfc/src/lib.rs 14
Rust crates/vize_atelier_sfc/src/parse/tests.rs 33
Rust crates/vize_atelier_sfc/src/rewrite_default.rs 6
Rust crates/vize_atelier_sfc/src/script/analyze_script_bindings.rs 10
Rust crates/vize_atelier_sfc/src/script/context.rs 12
Rust crates/vize_atelier_sfc/src/script/context/external_types.rs 14
Rust crates/vize_atelier_sfc/src/script/context/props.rs 1
Rust crates/vize_atelier_sfc/src/script/define_emits.rs 5
Rust crates/vize_atelier_sfc/src/script/define_expose.rs 1
Rust crates/vize_atelier_sfc/src/script/define_model.rs 3
Rust crates/vize_atelier_sfc/src/script/define_options.rs 1
Rust crates/vize_atelier_sfc/src/script/define_props_destructure/tests.rs 48
Rust crates/vize_atelier_sfc/src/script/define_props.rs 3
Rust crates/vize_atelier_sfc/src/script/define_slots.rs 2
Rust crates/vize_atelier_sfc/src/script/import_usage_check.rs 15
Rust crates/vize_atelier_sfc/src/script/type_resolution.rs 7
Rust crates/vize_atelier_sfc/src/script/utils.rs 4
Rust crates/vize_atelier_sfc/src/snapshot_tests.rs 8
Rust crates/vize_atelier_sfc/src/style.rs 26
Rust crates/vize_atelier_sfc/src/vite_plugin/css_scope.rs 12
Rust crates/vize_atelier_sfc/src/vite_plugin/css.rs 3
Rust crates/vize_atelier_sfc/src/vite_plugin/hmr.rs 2
Rust crates/vize_atelier_sfc/src/vite_plugin/js_string.rs 1
Rust crates/vize_atelier_sfc/src/vite_plugin/resolver.rs 6
Rust crates/vize_atelier_sfc/src/vite_plugin/tests.rs 10
Rust crates/vize_atelier_sfc/src/vite_plugin/tests/middleware.rs 2
Rust crates/vize_atelier_sfc/src/vite_plugin/tests/precompile.rs 1
Rust crates/vize_atelier_sfc/src/vite_plugin/transform.rs 7
Rust crates/vize_atelier_sfc/tests/allocation_budget.rs 1
Rust crates/vize_atelier_sfc/tests/empty_component.rs 1
Rust crates/vize_atelier_sfc/tests/scoped_slot_shadowing.rs 2
Rust crates/vize_atelier_sfc/tests/setup_component_unref.rs 1
Rust crates/vize_atelier_sfc/tests/vite_css_scope.rs 1
Rust crates/vize_atelier_ssr/src/codegen.rs 7
Rust crates/vize_atelier_ssr/src/errors.rs 1
Rust crates/vize_atelier_ssr/src/lib.rs 31
Rust crates/vize_atelier_ssr/src/options.rs 1
Rust crates/vize_atelier_ssr/src/steps.rs 11
Rust crates/vize_atelier_ssr/tests/setup_component_parity.rs 1
Rust crates/vize_atelier_ssr/tests/ssr_snapshot.rs 76
Rust crates/vize_atelier_vapor/src/generate.rs 3
Rust crates/vize_atelier_vapor/src/generate/destructure.rs 2
Rust crates/vize_atelier_vapor/src/generate/operations/for_loop.rs 1
Rust crates/vize_atelier_vapor/src/generators/block.rs 2
Rust crates/vize_atelier_vapor/src/generators/component.rs 3
Rust crates/vize_atelier_vapor/src/generators/directive.rs 4
Rust crates/vize_atelier_vapor/src/generators/event.rs 3
Rust crates/vize_atelier_vapor/src/generators/for_node.rs 3
Rust crates/vize_atelier_vapor/src/generators/generate_text.rs 5
Rust crates/vize_atelier_vapor/src/generators/if_node.rs 2
Rust crates/vize_atelier_vapor/src/generators/prop.rs 3
Rust crates/vize_atelier_vapor/src/lower.rs 2
Rust crates/vize_atelier_vapor/src/tests_dotted_slots.rs 1
Rust crates/vize_atelier_vapor/src/tests_setup_components.rs 2
Rust crates/vize_atelier_vapor/src/tests.rs 42
Rust crates/vize_atelier_vapor/src/transforms/element.rs 2
Rust crates/vize_atelier_vapor/src/transforms/transform_slot.rs 1
Rust crates/vize_atelier_vapor/src/transforms/transform_text.rs 3
Rust crates/vize_atelier_vapor/src/transforms/v_bind.rs 1
Rust crates/vize_atelier_vapor/src/transforms/v_for.rs 3
Rust crates/vize_atelier_vapor/src/transforms/v_if.rs 1
Rust crates/vize_atelier_vapor/src/transforms/v_model.rs 3
Rust crates/vize_atelier_vapor/src/transforms/v_on.rs 2
Rust crates/vize_atelier_vapor/src/transforms/v_show.rs 1
Rust crates/vize_canon/src/batch/error.rs 2
Rust crates/vize_canon/src/batch/executor/cli/import_resolution.rs 1
Rust crates/vize_canon/src/batch/executor/cli/tests.rs 7
Rust crates/vize_canon/src/batch/executor/declaration_maps.rs 1
Rust crates/vize_canon/src/batch/executor/diagnostics.rs 12
Rust crates/vize_canon/src/batch/executor/diagnostics/keyof_indexed_assignment.rs 2
Rust crates/vize_canon/src/batch/executor/diagnostics/line_index.rs 2
Rust crates/vize_canon/src/batch/executor/diagnostics/module_resolution.rs 1
Rust crates/vize_canon/src/batch/executor/tests.rs 12
Rust crates/vize_canon/src/batch/import_rewriter_dts_tests.rs 2
Rust crates/vize_canon/src/batch/import_rewriter_tests.rs 19
Rust crates/vize_canon/src/batch/import_rewriter_type_tests.rs 10
Rust crates/vize_canon/src/batch/import_rewriter_virtual_tests.rs 2
Rust crates/vize_canon/src/batch/import_rewriter_virtual.rs 1
Rust crates/vize_canon/src/batch/materialize_lock.rs 1
Rust crates/vize_canon/src/batch/runtime_deps/tests.rs 3
Rust crates/vize_canon/src/batch/source_map.rs 4
Rust crates/vize_canon/src/batch/type_checker/tests.rs 34
Rust crates/vize_canon/src/batch/type_checker/tests/camel_case_component_props.rs 5
Rust crates/vize_canon/src/batch/type_checker/tests/emit_object_recursion.rs 3
Rust crates/vize_canon/src/batch/type_checker/tests/generic_component_listener_payload.rs 5
Rust crates/vize_canon/src/batch/type_checker/tests/generic_props.rs 2
Rust crates/vize_canon/src/batch/type_checker/tests/no_check_props.rs 2
Rust crates/vize_canon/src/batch/type_checker/tests/no_unused.rs 5
Rust crates/vize_canon/src/batch/type_checker/tests/options_api_required_props.rs 3
Rust crates/vize_canon/src/batch/type_checker/tests/package_exports_types.rs 2
Rust crates/vize_canon/src/batch/type_checker/tests/recent_issues.rs 7
Rust crates/vize_canon/src/batch/type_checker/tests/scan.rs 1
Rust crates/vize_canon/src/batch/type_checker/tests/tsx_sfc.rs 2
Rust crates/vize_canon/src/batch/virtual_project/jsx_codegen.rs 3
Rust crates/vize_canon/src/batch/virtual_project/passthrough.rs 2
Rust crates/vize_canon/src/batch/virtual_project/tests.rs 33
Rust crates/vize_canon/src/batch/virtual_project/tests/graphql_generated.rs 1
Rust crates/vize_canon/src/batch/virtual_project/tests/module_augmentations.rs 2
Rust crates/vize_canon/src/batch/virtual_project/tests/ref_arity.rs 3
Rust crates/vize_canon/src/batch/virtual_project/tests/setup_props.rs 2
Rust crates/vize_canon/src/batch/virtual_project/tests/tsconfig_native_options.rs 1
Rust crates/vize_canon/src/batch/virtual_project/tests/windows_paths.rs 1
Rust crates/vize_canon/src/batch/virtual_ts.rs 1
Rust crates/vize_canon/src/checker.rs 19
Rust crates/vize_canon/src/context.rs 3
Rust crates/vize_canon/src/corsa_bridge.rs 4
Rust crates/vize_canon/src/corsa_bridge/vue_dependencies.rs 1
Rust crates/vize_canon/src/corsa_bridge/vue_dependency_specifiers.rs 1
Rust crates/vize_canon/src/corsa_bridge/vue_document_tests.rs 4
Rust crates/vize_canon/src/corsa_server.rs 6
Rust crates/vize_canon/src/corsa_session_cache.rs 2
Rust crates/vize_canon/src/diagnostic.rs 2
Rust crates/vize_canon/src/file_uri.rs 6
Rust crates/vize_canon/src/intelligence.rs 5
Rust crates/vize_canon/src/lsp_client/diagnostics_api.rs 3
Rust crates/vize_canon/src/lsp_client/diagnostics.rs 3
Rust crates/vize_canon/src/lsp_client/lifecycle.rs 1
Rust crates/vize_canon/src/lsp_client/session.rs 8
Rust crates/vize_canon/src/lsp_client/tests.rs 7
Rust crates/vize_canon/src/lsp_client/virtual_overlay.rs 1
Rust crates/vize_canon/src/script_parse.rs 5
Rust crates/vize_canon/src/sfc_typecheck/tests.rs 64
Rust crates/vize_canon/src/sfc_typecheck/tests/emit_props.rs 1
Rust crates/vize_canon/src/sfc_typecheck/tests/optional_chain_props.rs 2
Rust crates/vize_canon/src/sfc_typecheck/tests/options_api_required_props.rs 1
Rust crates/vize_canon/src/sfc_typecheck/tests/options_api_setup_spread.rs 1
Rust crates/vize_canon/src/source_map.rs 12
Rust crates/vize_canon/src/tests.rs 18
Rust crates/vize_canon/src/type_only_import_anchors.rs 1
Rust crates/vize_canon/src/typecheck_service.rs 2
Rust crates/vize_canon/src/types.rs 2
Rust crates/vize_canon/src/virtual_ts/expressions/component_props.rs 1
Rust crates/vize_canon/src/virtual_ts/expressions/tests.rs 9
Rust crates/vize_canon/src/virtual_ts/generator/legacy_vue2.rs 1
Rust crates/vize_canon/src/virtual_ts/generator/script_module.rs 3
Rust crates/vize_canon/src/virtual_ts/generator/setup_helpers/boolean_keys.rs 2
Rust crates/vize_canon/src/virtual_ts/generator/spans.rs 9
Rust crates/vize_canon/src/virtual_ts/helpers.rs 3
Rust crates/vize_canon/src/virtual_ts/incremental.rs 3
Rust crates/vize_canon/src/virtual_ts/interface_extends_tests.rs 1
Rust crates/vize_canon/src/virtual_ts/legacy_vue2_vuetify_tests.rs 7
Rust crates/vize_canon/src/virtual_ts/props.rs 4
Rust crates/vize_canon/src/virtual_ts/props/with_defaults.rs 2
Rust crates/vize_canon/src/virtual_ts/tests.rs 62
Rust crates/vize_canon/src/virtual_ts/tests/auto_import_shadowing.rs 1
Rust crates/vize_canon/src/virtual_ts/tests/component_navigation.rs 3
Rust crates/vize_canon/src/virtual_ts/tests/define_props_scope.rs 6
Rust crates/vize_canon/src/virtual_ts/tests/legacy_nuxt2_page_context.rs 1
Rust crates/vize_canon/src/virtual_ts/tests/no_check_template_bindings.rs 2
Rust crates/vize_canon/src/virtual_ts/tests/options_api_props_spread.rs 5
Rust crates/vize_canon/src/virtual_ts/tests/options_api_setup_spread.rs 1
Rust crates/vize_canon/src/virtual_ts/tests/unused_refs.rs 1
Rust crates/vize_canon/src/virtual_ts/tests/vif_chain.rs 2
Rust crates/vize_canon/src/virtual_ts/types.rs 1
Rust crates/vize_canon/tests/lsp_import_resolution.rs 1
Rust crates/vize_canon/tests/nuxt_false_positives.rs 4
Rust crates/vize_canon/tests/plain_script_named_exports.rs 2
Rust crates/vize_carton/src/allocator.rs 4
Rust crates/vize_carton/src/clone_in.rs 6
Rust crates/vize_carton/src/config/loader/experimental_tests.rs 2
Rust crates/vize_carton/src/config/loader/tests.rs 22
Rust crates/vize_carton/src/config/model/linter_rule_options.rs 4
Rust crates/vize_carton/src/config/model/linter.rs 9
Rust crates/vize_carton/src/config/model/vue.rs 5
Rust crates/vize_carton/src/config/normalize.rs 4
Rust crates/vize_carton/src/corsa_resolver.rs 20
Rust crates/vize_carton/src/dialect.rs 12
Rust crates/vize_carton/src/directive.rs 18
Rust crates/vize_carton/src/dom_tag_config.rs 5
Rust crates/vize_carton/src/flags.rs 3
Rust crates/vize_carton/src/general.rs 7
Rust crates/vize_carton/src/hash.rs 4
Rust crates/vize_carton/src/i18n.rs 7
Rust crates/vize_carton/src/line_index.rs 7
Rust crates/vize_carton/src/lsp.rs 7
Rust crates/vize_carton/src/path.rs 4
Rust crates/vize_carton/src/profiler/tests.rs 10
Rust crates/vize_carton/src/source_range.rs 5
Rust crates/vize_carton/src/string_builder.rs 6
Rust crates/vize_carton/src/telegraph.rs 2
Rust crates/vize_carton/tests/linter_features.rs 4
Rust crates/vize_carton/tests/loading.rs 12
Rust crates/vize_carton/tests/pkl_compat.rs 1
Rust crates/vize_croquis_cf/src/analyzer/core/deps.rs 6
Rust crates/vize_croquis_cf/src/analyzer/tests_basic.rs 11
Rust crates/vize_croquis_cf/src/analyzer/tests_element_id.rs 6
Rust crates/vize_croquis_cf/src/analyzer/tests_provide_inject/basic.rs 6
Rust crates/vize_croquis_cf/src/analyzer/tests_provide_inject/patterns.rs 5
Rust crates/vize_croquis_cf/src/analyzer/tests_provide_inject/playground.rs 2
Rust crates/vize_croquis_cf/src/analyzer/tests_provide_inject/provider_context.rs 4
Rust crates/vize_croquis_cf/src/analyzer/tests_provide_inject/provider_reactivity.rs 3
Rust crates/vize_croquis_cf/src/analyzer/tests_provide_inject/tree.rs 4
Rust crates/vize_croquis_cf/src/analyzer/tests_race_conditions/advanced.rs 4
Rust crates/vize_croquis_cf/src/analyzer/tests_race_conditions/basic.rs 5
Rust crates/vize_croquis_cf/src/analyzer/tests_reactivity_props/direct.rs 9
Rust crates/vize_croquis_cf/src/analyzer/tests_reactivity_props/shared.rs 4
Rust crates/vize_croquis_cf/src/analyzer/tests_single_file.rs 10
Rust crates/vize_croquis_cf/src/analyzer/tests_snapshots/full.rs 1
Rust crates/vize_croquis_cf/src/analyzer/tests_snapshots/graph.rs 1
Rust crates/vize_croquis_cf/src/analyzer/tests_snapshots/reactivity.rs 2
Rust crates/vize_croquis_cf/src/diagnostics/diagnostics_tests/codes.rs 2
Rust crates/vize_croquis_cf/src/diagnostics/diagnostics_tests/markdown.rs 8
Rust crates/vize_croquis_cf/src/diagnostics/diagnostics_tests/snapshots.rs 3
Rust crates/vize_croquis_cf/src/graph.rs 3
Rust crates/vize_croquis_cf/src/registry.rs 5
Rust crates/vize_croquis_cf/src/rules/boundary.rs 1
Rust crates/vize_croquis_cf/src/rules/component_resolution/paths.rs 3
Rust crates/vize_croquis_cf/src/rules/component_resolution/tests.rs 3
Rust crates/vize_croquis_cf/src/rules/cross_file_reactivity_tests.rs 7
Rust crates/vize_croquis_cf/src/rules/cross_file_reactivity/path_helpers.rs 3
Rust crates/vize_croquis_cf/src/rules/cross_file_reactivity/store_detection.rs 7
Rust crates/vize_croquis_cf/src/rules/element_id.rs 1
Rust crates/vize_croquis_cf/src/rules/emit.rs 1
Rust crates/vize_croquis_cf/src/rules/event_bubbling/tests.rs 3
Rust crates/vize_croquis_cf/src/rules/fallthrough/tests.rs 3
Rust crates/vize_croquis_cf/src/rules/props_validation/helpers_tests.rs 4
Rust crates/vize_croquis_cf/src/rules/provide_inject/tests.rs 1
Rust crates/vize_croquis_cf/src/rules/reactivity/tests.rs 1
Rust crates/vize_croquis_cf/src/rules/setup_context.rs 1
Rust crates/vize_croquis_cf/src/suppression.rs 8
Rust crates/vize_croquis/src/builtins.rs 6
Rust crates/vize_croquis/src/call_graph/analysis.rs 6
Rust crates/vize_croquis/src/croquis.rs 2
Rust crates/vize_croquis/src/css.rs 1
Rust crates/vize_croquis/src/declaration_ts.rs 2
Rust crates/vize_croquis/src/drawer/helpers/identifiers/tests.rs 5
Rust crates/vize_croquis/src/drawer/helpers/keywords.rs 2
Rust crates/vize_croquis/src/drawer/helpers/slots/slot_props.rs 3
Rust crates/vize_croquis/src/drawer/helpers/v_for/tests.rs 4
Rust crates/vize_croquis/src/drawer/helpers/v_scope.rs 5
Rust crates/vize_croquis/src/drawer/template/tests.rs 11
Rust crates/vize_croquis/src/drawer/tests/script.rs 6
Rust crates/vize_croquis/src/drawer/tests/snapshots.rs 4
Rust crates/vize_croquis/src/effect_graph.rs 3
Rust crates/vize_croquis/src/hoist.rs 2
Rust crates/vize_croquis/src/import_resolver.rs 10
Rust crates/vize_croquis/src/macros.rs 3
Rust crates/vize_croquis/src/naming.rs 7
Rust crates/vize_croquis/src/optimization.rs 2
Rust crates/vize_croquis/src/provide.rs 2
Rust crates/vize_croquis/src/race.rs 1
Rust crates/vize_croquis/src/reactivity_tracking/tracker.rs 7
Rust crates/vize_croquis/src/reactivity.rs 5
Rust crates/vize_croquis/src/render_tree.rs 1
Rust crates/vize_croquis/src/scope/chain/chain_tests.rs 26
Rust crates/vize_croquis/src/scope/types.rs 7
Rust crates/vize_croquis/src/script_parser/interface_extends_tests.rs 2
Rust crates/vize_croquis/src/script_parser/options_api_emits_tests.rs 1
Rust crates/vize_croquis/src/script_parser/process/options_api.rs 4
Rust crates/vize_croquis/src/script_parser/props_destructure_tests.rs 2
Rust crates/vize_croquis/src/script_parser/tests.rs 52
Rust crates/vize_croquis/src/setup_context.rs 2
Rust crates/vize_croquis/src/symbol.rs 2
Rust crates/vize_croquis/src/types/tests.rs 8
Rust crates/vize_croquis/src/virtual_ts.rs 11
Rust crates/vize_croquis/src/virtual_ts/generator/script.rs 3
Rust crates/vize_curator/src/inspector/tests.rs 9
Rust crates/vize_curator/src/profile/tests.rs 1
Rust crates/vize_fresco/src/component/box_node.rs 4
Rust crates/vize_fresco/src/component/input_node.rs 4
Rust crates/vize_fresco/src/component/text_node.rs 4
Rust crates/vize_fresco/src/input/event.rs 2
Rust crates/vize_fresco/src/input/ime/candidate.rs 6
Rust crates/vize_fresco/src/input/ime/platform.rs 4
Rust crates/vize_fresco/src/input/ime/preedit.rs 7
Rust crates/vize_fresco/src/input/ime/state.rs 5
Rust crates/vize_fresco/src/input/keyboard.rs 5
Rust crates/vize_fresco/src/input/mouse.rs 3
Rust crates/vize_fresco/src/layout/engine.rs 6
Rust crates/vize_fresco/src/layout/flex_tests.rs 4
Rust crates/vize_fresco/src/layout/rect.rs 7
Rust crates/vize_fresco/src/napi/render_tests.rs 3
Rust crates/vize_fresco/src/render/diff.rs 4
Rust crates/vize_fresco/src/render/node.rs 4
Rust crates/vize_fresco/src/render/painter.rs 3
Rust crates/vize_fresco/src/render/tree.rs 4
Rust crates/vize_fresco/src/terminal/backend.rs 2
Rust crates/vize_fresco/src/terminal/buffer.rs 6
Rust crates/vize_fresco/src/terminal/cell.rs 4
Rust crates/vize_fresco/src/terminal/cursor.rs 3
Rust crates/vize_fresco/src/text/segment.rs 12
Rust crates/vize_fresco/src/text/width.rs 10
Rust crates/vize_fresco/src/text/wrap.rs 11
Rust crates/vize_glyph/src/json/tests.rs 22
Rust crates/vize_glyph/src/lib.rs 18
Rust crates/vize_glyph/src/script.rs 10
Rust crates/vize_glyph/src/style.rs 7
Rust crates/vize_glyph/src/template.rs 40
Rust crates/vize_glyph/src/template/attributes.rs 4
Rust crates/vize_glyph/tests/custom_blocks.rs 2
Rust crates/vize_glyph/tests/script_idempotence.rs 3
Rust crates/vize_glyph/tests/sfc_check_mode.rs 2
Rust crates/vize_glyph/tests/sfc_script_idempotence.rs 2
Rust crates/vize_glyph/tests/template_component_tags.rs 1
Rust crates/vize_glyph/tests/template_directive_attributes.rs 7
Rust crates/vize_glyph/tests/template_nested_component_indent.rs 1
Rust crates/vize_maestro/src/document/store/tests.rs 18
Rust crates/vize_maestro/src/ide/auto_import.rs 3
Rust crates/vize_maestro/src/ide/code_action.rs 6
Rust crates/vize_maestro/src/ide/code_lens.rs 4
Rust crates/vize_maestro/src/ide/completion/component_props_tests.rs 3
Rust crates/vize_maestro/src/ide/completion/dedup_tests.rs 2
Rust crates/vize_maestro/src/ide/completion/items.rs 2
Rust crates/vize_maestro/src/ide/completion/script/tests.rs 3
Rust crates/vize_maestro/src/ide/completion/template_event_tests.rs 1
Rust crates/vize_maestro/src/ide/completion/template/bindings.rs 3
Rust crates/vize_maestro/src/ide/completion/template/component_docs.rs 1
Rust crates/vize_maestro/src/ide/completion/template/component_meta.rs 3
Rust crates/vize_maestro/src/ide/completion/template/native_tests.rs 3
Rust crates/vize_maestro/src/ide/completion/template/slot_outlets.rs 3
Rust crates/vize_maestro/src/ide/completion/tests.rs 38
Rust crates/vize_maestro/src/ide/corsa_support/canonical_tests.rs 5
Rust crates/vize_maestro/src/ide/corsa_support/html_attribute_tests.rs 4
Rust crates/vize_maestro/src/ide/corsa_support/html_tag.rs 8
Rust crates/vize_maestro/src/ide/cursor_context.rs 9
Rust crates/vize_maestro/src/ide/definition.rs 26
Rust crates/vize_maestro/src/ide/definition/corsa_tests.rs 1
Rust crates/vize_maestro/src/ide/definition/html_tests.rs 6
Rust crates/vize_maestro/src/ide/diagnostics/component_props_tests.rs 2
Rust crates/vize_maestro/src/ide/diagnostics/corsa/message.rs 9
Rust crates/vize_maestro/src/ide/diagnostics/corsa/relative_import_tests.rs 1
Rust crates/vize_maestro/src/ide/diagnostics/corsa/tests.rs 7
Rust crates/vize_maestro/src/ide/diagnostics/editor_typecheck_tests.rs 5
Rust crates/vize_maestro/src/ide/diagnostics/tests.rs 32
Rust crates/vize_maestro/src/ide/document_highlight.rs 3
Rust crates/vize_maestro/src/ide/document_link.rs 3
Rust crates/vize_maestro/src/ide/ecosystem/context.rs 2
Rust crates/vize_maestro/src/ide/ecosystem/i18n.rs 3
Rust crates/vize_maestro/src/ide/ecosystem/router_extension_tests.rs 1
Rust crates/vize_maestro/src/ide/ecosystem/router.rs 4
Rust crates/vize_maestro/src/ide/ecosystem/void.rs 2
Rust crates/vize_maestro/src/ide/file_rename/declaration_index_tests.rs 1
Rust crates/vize_maestro/src/ide/file_rename/manual_tests.rs 3
Rust crates/vize_maestro/src/ide/file_rename/merge_tests.rs 3
Rust crates/vize_maestro/src/ide/file_rename/resources.rs 2
Rust crates/vize_maestro/src/ide/hover.rs 17
Rust crates/vize_maestro/src/ide/hover/component_prop.rs 1
Rust crates/vize_maestro/src/ide/hover/component_tag.rs 2
Rust crates/vize_maestro/src/ide/hover/corsa_tests.rs 1
Rust crates/vize_maestro/src/ide/hover/html.rs 6
Rust crates/vize_maestro/src/ide/inlay_hint.rs 10
Rust crates/vize_maestro/src/ide/jsx/code_action.rs 4
Rust crates/vize_maestro/src/ide/jsx/document_symbols.rs 4
Rust crates/vize_maestro/src/ide/jsx/position.rs 3
Rust crates/vize_maestro/src/ide/jsx/references.rs 1
Rust crates/vize_maestro/src/ide/jsx/rename.rs 3
Rust crates/vize_maestro/src/ide/jsx/scoped_style.rs 6
Rust crates/vize_maestro/src/ide/jsx/semantic_tokens.rs 4
Rust crates/vize_maestro/src/ide/jsx/service.rs 6
Rust crates/vize_maestro/src/ide/jsx/virtual_ts.rs 4
Rust crates/vize_maestro/src/ide/markup.rs 2
Rust crates/vize_maestro/src/ide/references.rs 6
Rust crates/vize_maestro/src/ide/rename.rs 6
Rust crates/vize_maestro/src/ide/semantic_tokens/tests.rs 25
Rust crates/vize_maestro/src/ide/tests.rs 13
Rust crates/vize_maestro/src/ide/type_service.rs 2
Rust crates/vize_maestro/src/ide/type_service/diagnostics.rs 4
Rust crates/vize_maestro/src/ide/workspace_symbols.rs 5
Rust crates/vize_maestro/src/runtime.rs 1
Rust crates/vize_maestro/src/server/capabilities/tests.rs 8
Rust crates/vize_maestro/src/server/format.rs 8
Rust crates/vize_maestro/src/server/handlers.rs 9
Rust crates/vize_maestro/src/server/handlers/tests/lifecycle.rs 6
Rust crates/vize_maestro/src/server/handlers/tests/requests.rs 2
Rust crates/vize_maestro/src/server/handlers/tests/requests/responses.rs 3
Rust crates/vize_maestro/src/server/state/config_tests.rs 2
Rust crates/vize_maestro/src/server/state/tests.rs 26
Rust crates/vize_maestro/src/utils/position.rs 8
Rust crates/vize_maestro/src/virtual_code/generator/tests.rs 10
Rust crates/vize_maestro/src/virtual_code/script_code.rs 2
Rust crates/vize_maestro/src/virtual_code/source_map.rs 6
Rust crates/vize_maestro/src/virtual_code/style_code.rs 2
Rust crates/vize_maestro/src/virtual_code/template_code.rs 4
Rust crates/vize_maestro/tests/file_rename_declarations.rs 3
Rust crates/vize_musea/src/autogen.rs 4
Rust crates/vize_musea/src/autogen/strategy.rs 8
Rust crates/vize_musea/src/docs.rs 2
Rust crates/vize_musea/src/docs/catalog.rs 3
Rust crates/vize_musea/src/docs/markdown.rs 2
Rust crates/vize_musea/src/lib.rs 4
Rust crates/vize_musea/src/palette/codegen.rs 4
Rust crates/vize_musea/src/palette/inference.rs 7
Rust crates/vize_musea/src/palette/types.rs 3
Rust crates/vize_musea/src/parse.rs 8
Rust crates/vize_musea/src/parse/art_block.rs 4
Rust crates/vize_musea/src/parse/variant.rs 7
Rust crates/vize_musea/src/tokens/tests.rs 3
Rust crates/vize_musea/src/transform/to_csf/tests.rs 7
Rust crates/vize_musea/src/transform/to_vue.rs 4
Rust crates/vize_musea/src/types.rs 3
Rust crates/vize_musea/src/vrt/config.rs 5
Rust crates/vize_musea/src/vrt/preset.rs 5
Rust crates/vize_musea/tests/define_art_metadata.rs 1
Rust crates/vize_patina/src/diagnostic.rs 19
Rust crates/vize_patina/src/lib.rs 2
Rust crates/vize_patina/src/linter/corsa_session/paths.rs 5
Rust crates/vize_patina/src/linter/corsa_session/session.rs 3
Rust crates/vize_patina/src/linter/corsa_session/tests.rs 2
Rust crates/vize_patina/src/linter/engine/ecosystem_hint.rs 2
Rust crates/vize_patina/src/linter/engine/template_extract.rs 10
Rust crates/vize_patina/src/linter/native_type_aware/template_queries/calls.rs 15
Rust crates/vize_patina/src/linter/native_type_aware/template_queries/collector.rs 1
Rust crates/vize_patina/src/linter/native_type_aware/tests.rs 47
Rust crates/vize_patina/src/linter/native_type_aware/tests/opt_in.rs 5
Rust crates/vize_patina/src/linter/native_type_aware/tests/options_api.rs 1
Rust crates/vize_patina/src/linter/script_rules/html_scripts.rs 1
Rust crates/vize_patina/src/linter/tests/basic.rs 29
Rust crates/vize_patina/src/linter/tests/css.rs 1
Rust crates/vize_patina/src/linter/tests/directives.rs 15
Rust crates/vize_patina/src/linter/tests/jsx_fallback.rs 3
Rust crates/vize_patina/src/linter/tests/jsx.rs 18
Rust crates/vize_patina/src/linter/tests/no_top_level_ref.rs 2
Rust crates/vize_patina/src/linter/tests/nuxt.rs 7
Rust crates/vize_patina/src/linter/tests/script.rs 2
Rust crates/vize_patina/src/linter/tests/severity_overrides.rs 2
Rust crates/vize_patina/src/linter/tests/sfc.rs 26
Rust crates/vize_patina/src/linter/tests/v_for_unused_vars.rs 2
Rust crates/vize_patina/src/markup.rs 10
Rust crates/vize_patina/src/output/tests.rs 13
Rust crates/vize_patina/src/preset.rs 4
Rust crates/vize_patina/src/rules/a11y/alt_text.rs 11
Rust crates/vize_patina/src/rules/a11y/anchor_has_content.rs 5
Rust crates/vize_patina/src/rules/a11y/anchor_is_valid.rs 11
Rust crates/vize_patina/src/rules/a11y/aria_props.rs 13
Rust crates/vize_patina/src/rules/a11y/aria_role.rs 18
Rust crates/vize_patina/src/rules/a11y/aria_unsupported_elements.rs 6
Rust crates/vize_patina/src/rules/a11y/click_events_have_key_events.rs 9
Rust crates/vize_patina/src/rules/a11y/form_control_has_label.rs 10
Rust crates/vize_patina/src/rules/a11y/heading_has_content.rs 8
Rust crates/vize_patina/src/rules/a11y/iframe_has_title.rs 4
Rust crates/vize_patina/src/rules/a11y/img_alt.rs 3
Rust crates/vize_patina/src/rules/a11y/interactive_supports_focus.rs 6
Rust crates/vize_patina/src/rules/a11y/label_has_for.rs 6
Rust crates/vize_patina/src/rules/a11y/media_has_caption.rs 6
Rust crates/vize_patina/src/rules/a11y/mouse_events_have_key_events.rs 8
Rust crates/vize_patina/src/rules/a11y/no_access_key.rs 4
Rust crates/vize_patina/src/rules/a11y/no_aria_hidden_on_focusable.rs 7
Rust crates/vize_patina/src/rules/a11y/no_autofocus.rs 4
Rust crates/vize_patina/src/rules/a11y/no_distracting_elements.rs 3
Rust crates/vize_patina/src/rules/a11y/no_i_for_icon.rs 13
Rust crates/vize_patina/src/rules/a11y/no_redundant_roles.rs 6
Rust crates/vize_patina/src/rules/a11y/no_refer_to_non_existent_id.rs 3
Rust crates/vize_patina/src/rules/a11y/no_role_presentation_on_focusable.rs 7
Rust crates/vize_patina/src/rules/a11y/no_static_element_interactions.rs 8
Rust crates/vize_patina/src/rules/a11y/role_has_required_aria_props.rs 8
Rust crates/vize_patina/src/rules/a11y/tabindex_no_positive.rs 4
Rust crates/vize_patina/src/rules/css.rs 6
Rust crates/vize_patina/src/rules/css/no_display_none.rs 3
Rust crates/vize_patina/src/rules/css/no_hardcoded_values.rs 7
Rust crates/vize_patina/src/rules/css/no_id_selectors.rs 3
Rust crates/vize_patina/src/rules/css/no_important.rs 2
Rust crates/vize_patina/src/rules/css/no_utility_classes.rs 4
Rust crates/vize_patina/src/rules/css/no_v_bind_performance.rs 4
Rust crates/vize_patina/src/rules/css/prefer_logical_properties.rs 3
Rust crates/vize_patina/src/rules/css/prefer_nested_selectors.rs 12
Rust crates/vize_patina/src/rules/css/prefer_slotted.rs 3
Rust crates/vize_patina/src/rules/css/require_font_display.rs 3
Rust crates/vize_patina/src/rules/ecosystem/i18n_no_missing_key.rs 4
Rust crates/vize_patina/src/rules/ecosystem/nuxt_prefer_nuxt_link.rs 3
Rust crates/vize_patina/src/rules/ecosystem/router_link_require_to.rs 4
Rust crates/vize_patina/src/rules/ecosystem/void_link_require_href.rs 4
Rust crates/vize_patina/src/rules/ecosystem/void_link_valid_method.rs 3
Rust crates/vize_patina/src/rules/ecosystem/vue_router_prefer_named_link.rs 4
Rust crates/vize_patina/src/rules/html/deprecated_attr.rs 8
Rust crates/vize_patina/src/rules/html/deprecated_element.rs 9
Rust crates/vize_patina/src/rules/html/id_duplication.rs 9
Rust crates/vize_patina/src/rules/html/no_consecutive_br.rs 6
Rust crates/vize_patina/src/rules/html/no_duplicate_dt.rs 5
Rust crates/vize_patina/src/rules/html/no_empty_palpable_content.rs 12
Rust crates/vize_patina/src/rules/html/require_datetime.rs 8
Rust crates/vize_patina/src/rules/musea.rs 5
Rust crates/vize_patina/src/rules/musea/no_empty_variant.rs 3
Rust crates/vize_patina/src/rules/musea/prefer_design_tokens.rs 8
Rust crates/vize_patina/src/rules/musea/require_component.rs 3
Rust crates/vize_patina/src/rules/musea/require_title.rs 4
Rust crates/vize_patina/src/rules/musea/unique_variant_names.rs 3
Rust crates/vize_patina/src/rules/musea/valid_variant.rs 3
Rust crates/vize_patina/src/rules/opinionated/a11y/heading_levels.rs 9
Rust crates/vize_patina/src/rules/opinionated/a11y/landmark_roles.rs 12
Rust crates/vize_patina/src/rules/opinionated/a11y/placeholder_label_option.rs 6
Rust crates/vize_patina/src/rules/opinionated/a11y/use_list.rs 10
Rust crates/vize_patina/src/rules/opinionated/html/no_dupe_style_properties.rs 8
Rust crates/vize_patina/src/rules/opinionated/html/no_duplicate_class.rs 8
Rust crates/vize_patina/src/rules/opinionated/type_aware/no_floating_promises.rs 1
Rust crates/vize_patina/src/rules/opinionated/type_aware/no_reactivity_loss.rs 1
Rust crates/vize_patina/src/rules/opinionated/type_aware/no_unsafe_template_binding.rs 1
Rust crates/vize_patina/src/rules/opinionated/vapor/no_inline_template.rs 3
Rust crates/vize_patina/src/rules/opinionated/vapor/prefer_static_class.rs 5
Rust crates/vize_patina/src/rules/opinionated/vapor/require_vapor_attribute.rs 1
Rust crates/vize_patina/src/rules/opinionated/vue/component_name_in_template_casing.rs 8
Rust crates/vize_patina/src/rules/opinionated/vue/html_button_has_type.rs 12
Rust crates/vize_patina/src/rules/opinionated/vue/html_self_closing.rs 9
Rust crates/vize_patina/src/rules/opinionated/vue/multi_word_component_names.rs 9
Rust crates/vize_patina/src/rules/opinionated/vue/no_array_index_key.rs 13
Rust crates/vize_patina/src/rules/opinionated/vue/no_boolean_attr_value.rs 10
Rust crates/vize_patina/src/rules/opinionated/vue/no_empty_component_block.rs 8
Rust crates/vize_patina/src/rules/opinionated/vue/no_inline_style.rs 4
Rust crates/vize_patina/src/rules/opinionated/vue/no_multiple_objects_in_class.rs 8
Rust crates/vize_patina/src/rules/opinionated/vue/no_negated_v_if_condition.rs 9
Rust crates/vize_patina/src/rules/opinionated/vue/no_root_v_if.rs 8
Rust crates/vize_patina/src/rules/opinionated/vue/no_template_shadow.rs 3
Rust crates/vize_patina/src/rules/opinionated/vue/no_unused_refs/tests.rs 18
Rust crates/vize_patina/src/rules/opinionated/vue/no_useless_mustaches.rs 6
Rust crates/vize_patina/src/rules/opinionated/vue/no_useless_v_bind.rs 5
Rust crates/vize_patina/src/rules/opinionated/vue/no_v_text.rs 4
Rust crates/vize_patina/src/rules/opinionated/vue/prefer_props_shorthand.rs 6
Rust crates/vize_patina/src/rules/opinionated/vue/prefer_true_attribute_shorthand.rs 6
Rust crates/vize_patina/src/rules/opinionated/vue/require_component_registration.rs 5
Rust crates/vize_patina/src/rules/opinionated/vue/scoped_event_names.rs 4
Rust crates/vize_patina/src/rules/opinionated/vue/slot_name_casing.rs 7
Rust crates/vize_patina/src/rules/opinionated/vue/this_in_template.rs 8
Rust crates/vize_patina/src/rules/opinionated/vue/use_unique_element_ids.rs 20
Rust crates/vize_patina/src/rules/opinionated/vue/use_v_on_exact.rs 6
Rust crates/vize_patina/src/rules/opinionated/vue/v_bind_style.rs 4
Rust crates/vize_patina/src/rules/opinionated/vue/v_on_event_hyphenation.rs 8
Rust crates/vize_patina/src/rules/opinionated/vue/v_on_handler_style.rs 12
Rust crates/vize_patina/src/rules/opinionated/vue/warn_custom_block.rs 2
Rust crates/vize_patina/src/rules/opinionated/vue/warn_custom_directive.rs 4
Rust crates/vize_patina/src/rules/petite_vue/no_unsupported_directive.rs 7
Rust crates/vize_patina/src/rules/petite_vue/valid_v_effect.rs 6
Rust crates/vize_patina/src/rules/petite_vue/valid_v_scope.rs 13
Rust crates/vize_patina/src/rules/script/component_options_name_casing/tests.rs 18
Rust crates/vize_patina/src/rules/script/custom_event_name_casing.rs 15
Rust crates/vize_patina/src/rules/script/define_emits_declaration.rs 9
Rust crates/vize_patina/src/rules/script/define_macros_order/tests.rs 19
Rust crates/vize_patina/src/rules/script/define_props_declaration.rs 9
Rust `crates/vize_patina/src/rules/script/define_p

Comment truncated at 64000 characters. Open the workflow run for the full job log.

@ubugeeei ubugeeei merged commit 4a9093b into main Jul 8, 2026
41 of 43 checks passed
@ubugeeei ubugeeei deleted the feat/lsp-rich-markdown-docs branch July 8, 2026 21:17

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/vize_maestro/src/ide/completion/items.rs`:
- Around line 342-347: The markdown_doc test helper is duplicated across
multiple test files, so extract the shared logic into a common test utility
module and update callers to use it. Move the helper currently defined in
markdown_doc so native_tests.rs, template_event_tests.rs, and
component_props_tests.rs all reference the same function, keeping the
Documentation matching behavior identical in one place to prevent drift.
- Around line 317-348: The Markdown documentation assertions only cover
directive_item and attr_item, so the other migrated completion constructors are
not verified. Extend the tests in tests to add coverage for vize_directive_item,
component_item, api_item, macro_item, and css_item, and assert their
documentation content through markdown_doc so each constructor’s docs are
checked for the expected Markdown formatting and links.

In `@crates/vize_maestro/src/ide/completion/template/component_docs.rs`:
- Around line 1-2: The clippy suppression in component_docs is too broad because
it is applied at module scope, which will hide future disallowed-macros uses in
this file. Remove the file-level `#![allow(clippy::disallowed_macros)]` and
scope the allowance only to the specific helper functions in `component_docs`
that need it, following the same per-function pattern used in `markup.rs`.

In `@crates/vize_maestro/src/ide/hover/builder.rs`:
- Around line 39-47: The example/docs formatting is duplicated by manually
rebuilding the same heading/body pattern instead of reusing the existing section
helper. Update HoverBuilder::example and the matching docs method to delegate
through self.section(...) (or a shared helper) so the "**{heading}**\n\n{body}"
logic lives in one place, and remove the now-unnecessary allow on those methods.

In `@crates/vize_maestro/src/ide/markup.rs`:
- Around line 87-98: The bare tabstop handling in snippet_for_docs only consumes
a single digit after $, so multi-digit placeholders like $10 are rendered
incorrectly. Update the cursor advance in the snippet parsing loop in markup.rs
to consume the full consecutive digit run for the bare $N case, matching the
braced tabstop behavior, and keep the existing collapse-to-... logic for any
nonzero tabstop index.

In `@tests/tooling/lsp-authoring-core.test.ts`:
- Around line 93-95: The hover test is asserting markdown wrappers instead of
the real behavior, making it brittle to cosmetic wording changes. Update the
assertions around clickHoverText in the lsp-authoring-core test to check for the
actual example/handler snippet content that should appear in the hover, rather
than the **Example** label or vue fence markers. Keep the checks focused on
observable hover text from the Vue event-handling example so failures reflect
real regressions, not formatting churn.

In `@tests/tooling/lsp-editor-production-gates.test.ts`:
- Around line 165-166: The assertions in the gating tests are too
formatting-specific; update the checks in the affected test cases to verify the
actual example content or observable disabled/enabled behavior instead of
markdown markers like bold headings or fenced code blocks. Use the existing test
block in lsp-editor-production-gates.test.ts to locate the impacted assertions
and replace them with focused expectations that validate the semantic output
from the example content.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e97587f5-fc59-47fc-ae6e-f5ce910f31fd

📥 Commits

Reviewing files that changed from the base of the PR and between 69a4443 and 75b2541.

📒 Files selected for processing (16)
  • crates/vize_maestro/src/ide.rs
  • crates/vize_maestro/src/ide/completion/component_props_tests.rs
  • crates/vize_maestro/src/ide/completion/items.rs
  • crates/vize_maestro/src/ide/completion/template.rs
  • crates/vize_maestro/src/ide/completion/template/component_docs.rs
  • crates/vize_maestro/src/ide/completion/template/component_meta.rs
  • crates/vize_maestro/src/ide/completion/template/directives.rs
  • crates/vize_maestro/src/ide/completion/template/native_tests.rs
  • crates/vize_maestro/src/ide/completion/template_event_tests.rs
  • crates/vize_maestro/src/ide/hover/builder.rs
  • crates/vize_maestro/src/ide/hover/component_prop.rs
  • crates/vize_maestro/src/ide/hover/html.rs
  • crates/vize_maestro/src/ide/hover/template.rs
  • crates/vize_maestro/src/ide/markup.rs
  • tests/tooling/lsp-authoring-core.test.ts
  • tests/tooling/lsp-editor-production-gates.test.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: playground-test
  • GitHub Check: test-js-packages
  • GitHub Check: criterion-ab
  • GitHub Check: tool-benchmark
🧰 Additional context used
📓 Path-based instructions (2)
tests/tooling/**

⚙️ CodeRabbit configuration file

tests/tooling/**: Ensure workflow and release tests assert observable behavior rather than incidental formatting. Prefer focused assertions that keep PRs small and failures easy to diagnose.

Files:

  • tests/tooling/lsp-authoring-core.test.ts
  • tests/tooling/lsp-editor-production-gates.test.ts
crates/**

⚙️ CodeRabbit configuration file

crates/**: Focus on parser/compiler correctness, source locations, UTF-8/UTF-16 offset handling, and panic-free LSP behavior. Flag changes that only work for small fixtures but break real Vue/Nuxt projects.

Files:

  • crates/vize_maestro/src/ide/completion/template_event_tests.rs
  • crates/vize_maestro/src/ide/completion/template/native_tests.rs
  • crates/vize_maestro/src/ide.rs
  • crates/vize_maestro/src/ide/completion/template.rs
  • crates/vize_maestro/src/ide/completion/template/component_docs.rs
  • crates/vize_maestro/src/ide/hover/html.rs
  • crates/vize_maestro/src/ide/completion/component_props_tests.rs
  • crates/vize_maestro/src/ide/hover/template.rs
  • crates/vize_maestro/src/ide/completion/template/directives.rs
  • crates/vize_maestro/src/ide/markup.rs
  • crates/vize_maestro/src/ide/hover/component_prop.rs
  • crates/vize_maestro/src/ide/completion/template/component_meta.rs
  • crates/vize_maestro/src/ide/completion/items.rs
  • crates/vize_maestro/src/ide/hover/builder.rs
🔇 Additional comments (18)
crates/vize_maestro/src/ide/hover/builder.rs (1)

1-3: LGTM!

Also applies to: 81-84, 93-107

crates/vize_maestro/src/ide/hover/component_prop.rs (1)

31-40: LGTM!

Also applies to: 74-78, 154-155

crates/vize_maestro/src/ide/hover/html.rs (1)

26-26: LGTM!

Also applies to: 44-45, 75-76, 137-148, 177-178, 201-202

crates/vize_maestro/src/ide/hover/template.rs (1)

137-155: LGTM!

Also applies to: 161-178, 362-368

crates/vize_maestro/src/ide.rs (1)

32-32: LGTM!

Also applies to: 72-73

crates/vize_maestro/src/ide/markup.rs (1)

1-150: LGTM!

crates/vize_maestro/src/ide/completion/items.rs (1)

95-315: LGTM!

crates/vize_maestro/src/ide/completion/template/native_tests.rs (1)

3-3: LGTM!

Also applies to: 24-49, 94-118

crates/vize_maestro/src/ide/completion/template_event_tests.rs (1)

9-11: LGTM!

Also applies to: 30-33, 82-88

crates/vize_maestro/src/ide/completion/template.rs (1)

13-13: LGTM!

crates/vize_maestro/src/ide/completion/template/component_docs.rs (3)

8-39: LGTM! Parameter order matches the call site in component_meta.rs, and the conditional Default section is composed correctly.


41-73: LGTM!


75-91: LGTM!

crates/vize_maestro/src/ide/completion/template/component_meta.rs (2)

7-15: LGTM! The insert_name.clone() avoids the earlier move so it can still be borrowed for component_docs::prop_documentation, and the call's argument order matches the helper's signature.

Also applies to: 319-337, 349-349


367-367: LGTM! Matching on destructure.as_ref() correctly preserves ownership of destructure so it can be reused via .as_deref() for slot_documentation.

Also applies to: 400-401

crates/vize_maestro/src/ide/completion/template/directives.rs (2)

4-9: LGTM!

Also applies to: 67-84


126-150: LGTM!

crates/vize_maestro/src/ide/completion/component_props_tests.rs (1)

3-3: LGTM! The test now exercises the completion item's documentation field directly rather than only labels, and markdown_doc correctly unwraps both Documentation variants (confirmed against the lsp_types::Documentation/MarkupContent API).

Also applies to: 44-60, 218-224

Comment on lines +317 to +348
#[cfg(test)]
mod tests {
use super::{attr_item, directive_item};
use tower_lsp::lsp_types::Documentation;

#[test]
fn directive_completion_docs_include_highlightable_example() {
let item = directive_item("v-if", "Conditional rendering", "v-if=\"$1\"");
let doc = markdown_doc(&item.documentation);

assert!(doc.contains("**Example**"), "got {doc:?}");
assert!(doc.contains("```vue"), "got {doc:?}");
assert!(doc.contains("Vue built-in directives"), "got {doc:?}");
}

#[test]
fn attribute_completion_docs_include_template_syntax_link() {
let item = attr_item("class", "CSS classes", "class=\"$1\"");
let doc = markdown_doc(&item.documentation);

assert!(doc.contains("Template attribute"), "got {doc:?}");
assert!(doc.contains("```vue"), "got {doc:?}");
assert!(doc.contains("Vue template syntax"), "got {doc:?}");
}

fn markdown_doc(doc: &Option<Documentation>) -> &str {
match doc.as_ref().expect("completion should include docs") {
Documentation::MarkupContent(content) => &content.value,
Documentation::String(value) => value,
}
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider extending doc-content assertions to remaining item constructors.

Only directive_item and attr_item get dedicated Markdown-content tests; vize_directive_item, component_item, api_item, macro_item, and css_item were also migrated but aren't directly asserted here.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/vize_maestro/src/ide/completion/items.rs` around lines 317 - 348, The
Markdown documentation assertions only cover directive_item and attr_item, so
the other migrated completion constructors are not verified. Extend the tests in
tests to add coverage for vize_directive_item, component_item, api_item,
macro_item, and css_item, and assert their documentation content through
markdown_doc so each constructor’s docs are checked for the expected Markdown
formatting and links.

Comment on lines +342 to +347
fn markdown_doc(doc: &Option<Documentation>) -> &str {
match doc.as_ref().expect("completion should include docs") {
Documentation::MarkupContent(content) => &content.value,
Documentation::String(value) => value,
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

markdown_doc test helper duplicated across multiple files.

The same helper appears verbatim in native_tests.rs, template_event_tests.rs, and (per the supplied context) component_props_tests.rs. Consider extracting to a shared test util module to avoid drift.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/vize_maestro/src/ide/completion/items.rs` around lines 342 - 347, The
markdown_doc test helper is duplicated across multiple test files, so extract
the shared logic into a common test utility module and update callers to use it.
Move the helper currently defined in markdown_doc so native_tests.rs,
template_event_tests.rs, and component_props_tests.rs all reference the same
function, keeping the Documentation matching behavior identical in one place to
prevent drift.

Comment on lines +1 to +2
//! Markdown docs for component prop and slot completions.
#![allow(clippy::disallowed_macros)]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Module-wide clippy suppression is broader than the established pattern.

#![allow(clippy::disallowed_macros)] is applied at file scope here, whereas the referenced markup.rs module applies #[allow(clippy::disallowed_macros)] per-function. File-level suppression silences the lint for any future code added to this file, not just the format!-using helpers here.

♻️ Scope the allow to the functions that need it
-//! Markdown docs for component prop and slot completions.
-#![allow(clippy::disallowed_macros)]
+//! Markdown docs for component prop and slot completions.

 use tower_lsp::lsp_types::Documentation;

 use crate::ide::markup::Markdown;

+#[allow(clippy::disallowed_macros)]
 pub(super) fn prop_documentation(
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/vize_maestro/src/ide/completion/template/component_docs.rs` around
lines 1 - 2, The clippy suppression in component_docs is too broad because it is
applied at module scope, which will hide future disallowed-macros uses in this
file. Remove the file-level `#![allow(clippy::disallowed_macros)]` and scope the
allowance only to the specific helper functions in `component_docs` that need
it, following the same per-function pattern used in `markup.rs`.

Comment on lines +39 to 47
/// Add a syntax-highlightable example block.
#[allow(clippy::disallowed_macros)]
pub fn example(mut self, language: &str, code: &str) -> Self {
self.sections.push(format!(
"**Example**\n\n{}",
markup::code_block(language, code)
));
self
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Reuse self.section(...) instead of re-hardcoding the heading format.

example() and docs() manually rebuild the exact "**{heading}**\n\n{body}" pattern that section() (Line 51-54) already implements — and that markup::Markdown::example/docs also implement independently. This duplicates formatting logic in two places; if the heading format ever changes, one implementation can drift from the other. Delegating to self.section(...) also removes the need for the extra #[allow(clippy::disallowed_macros)] on these two methods.

♻️ Proposed refactor
     /// Add a syntax-highlightable example block.
-    #[allow(clippy::disallowed_macros)]
     pub fn example(mut self, language: &str, code: &str) -> Self {
-        self.sections.push(format!(
-            "**Example**\n\n{}",
-            markup::code_block(language, code)
-        ));
-        self
+        self.section("Example", &markup::code_block(language, code))
     }
     /// Add a named documentation link section.
-    #[allow(clippy::disallowed_macros)]
     pub fn docs(mut self, text: &str, url: &str) -> Self {
-        self.sections
-            .push(format!("**Docs**\n\n{}", markup::link(text, url)));
-        self
+        self.section("Docs", &markup::link(text, url))
     }

Also applies to: 85-91

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/vize_maestro/src/ide/hover/builder.rs` around lines 39 - 47, The
example/docs formatting is duplicated by manually rebuilding the same
heading/body pattern instead of reusing the existing section helper. Update
HoverBuilder::example and the matching docs method to delegate through
self.section(...) (or a shared helper) so the "**{heading}**\n\n{body}" logic
lives in one place, and remove the now-unnecessary allow on those methods.

Comment on lines +87 to +98
while cursor < snippet.len() {
let rest = &snippet[cursor..];
if let Some(stripped) = rest.strip_prefix('$')
&& let Some(ch) = stripped.chars().next()
{
if ch.is_ascii_digit() {
if ch != '0' {
output.push_str("...");
}
cursor += 1 + ch.len_utf8();
continue;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify no current snippet definitions use bare multi-digit tabstops (e.g. $10+)
rg -nP '\$\d{2,}(?!\{)' crates/vize_maestro/src --type rust -C2

Repository: ubugeeei-prod/vize

Length of output: 156


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== markup.rs around snippet_for_docs ==\n'
sed -n '1,220p' crates/vize_maestro/src/ide/markup.rs

printf '\n== Search for snippet syntax in crate ==\n'
rg -n '\$\{?[0-9]+' crates/vize_maestro/src crates/vize_maestro/tests -g '!target' || true

printf '\n== Search for snippet_for_docs callers ==\n'
rg -n 'snippet_for_docs|snippet\(' crates/vize_maestro/src -g '*.rs' || true

Repository: ubugeeei-prod/vize

Length of output: 20328


Consume the full bare tabstop index in snippet_for_docs.
$10 is currently rendered as ...0 because the bare $N branch only advances past one digit. Bare tabstops allow multi-digit indices, so this should consume the full digit run and collapse it to ... like the braced form.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/vize_maestro/src/ide/markup.rs` around lines 87 - 98, The bare tabstop
handling in snippet_for_docs only consumes a single digit after $, so
multi-digit placeholders like $10 are rendered incorrectly. Update the cursor
advance in the snippet parsing loop in markup.rs to consume the full consecutive
digit run for the bare $N case, matching the braced tabstop behavior, and keep
the existing collapse-to-... logic for any nonzero tabstop index.

Comment on lines +93 to +95
assert.match(clickHoverText, /\*\*Example\*\*/);
assert.match(clickHoverText, /```vue/);
assert.match(clickHoverText, /Vue Event Handling/);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assertions target markdown formatting, not observable behavior.

Checking for **Example** and ```vue tokens tests incidental formatting rather than the actual hover content (e.g., whether the expected event-handling snippet is present). This makes the test brittle to cosmetic heading/label changes and doesn't validate meaningful behavior. Consider asserting on the actual example content (e.g., the handler snippet text) instead of just the surrounding markdown markers.

As per path instructions, "Ensure workflow and release tests assert observable behavior rather than incidental formatting. Prefer focused assertions that keep PRs small and failures easy to diagnose."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/tooling/lsp-authoring-core.test.ts` around lines 93 - 95, The hover
test is asserting markdown wrappers instead of the real behavior, making it
brittle to cosmetic wording changes. Update the assertions around clickHoverText
in the lsp-authoring-core test to check for the actual example/handler snippet
content that should appear in the hover, rather than the **Example** label or
vue fence markers. Keep the checks focused on observable hover text from the Vue
event-handling example so failures reflect real regressions, not formatting
churn.

Source: Path instructions

Comment on lines +165 to +166
assert.match(disabledText, /\*\*Example\*\*/);
assert.match(disabledText, /```vue/);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Same formatting-focused assertion concern as in lsp-authoring-core.test.ts.

These new checks assert on markdown markers (**Example**, ```vue) rather than the actual example content, which is incidental formatting per the path instructions for this directory.

As per path instructions, "Ensure workflow and release tests assert observable behavior rather than incidental formatting. Prefer focused assertions that keep PRs small and failures easy to diagnose."

Also applies to: 176-177

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/tooling/lsp-editor-production-gates.test.ts` around lines 165 - 166,
The assertions in the gating tests are too formatting-specific; update the
checks in the affected test cases to verify the actual example content or
observable disabled/enabled behavior instead of markdown markers like bold
headings or fenced code blocks. Use the existing test block in
lsp-editor-production-gates.test.ts to locate the impacted assertions and
replace them with focused expectations that validate the semantic output from
the example content.

Source: Path instructions

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Tool Benchmark

Measured: 2026-07-08T21:17:31.837Z
Commit: 75b2541cb9ad (run)
Runner: blacksmith-32vcpu-ubuntu-2404 (32 logical CPU, Intel(R) Xeon(R) Processor, 32 vCPU / 128 GB RAM / 1.5 TB storage)
Input: 3,000 generated SFC files (11.7 MB). Median of 3 measured run(s) after 1 warmup run(s).
Large SFC: 300 repeated template blocks (225.6 KB). Nuxt import set: 250 SFC files.

Surface Files Existing tool Existing median Vize 1T Vize max Speedup
SFC compile 3,000 @vue/compiler-sfc (1T) 3.89s 684.9ms 57.2ms 67.9x
Large SFC compile 1 @vue/compiler-sfc (1T) 59.4ms 21.0ms 16.5ms 3.6x
Large SFC type check 1 vue-tsc 805.8ms 108.0ms 102.0ms 7.9x
Lint 3,000 eslint-plugin-vue (1T) 11.03s 446.1ms 104.2ms 105.8x
Format 3,000 Prettier CLI 30.66s 2.27s 445.8ms 68.8x
Type check 500 vue-tsc 5.35s 472.5ms 393.1ms 13.6x
Vite build (end-to-end) 1,000 @vitejs/plugin-vue 1.73s n/a 1.48s 1.2x
Nuxt SPA build (end-to-end) 250 Nuxt default compiler 4.46s n/a 4.89s 0.9x

Fairness notes:

  • All tools run on the same generated Vue SFC corpus from the same checkout and lockfile.
  • The 15,000-SFC rows are the many-file workload; the large-SFC rows isolate one large component.
  • Reported times are medians; measured runs alternate variant order after warmup runs.
  • Destructive formatter runs receive a fresh copy of the same input before each invocation.
  • SFC compile Vize max uses compileSfcBatchWithResults wall time so the primary number includes generated output crossing the JS/native boundary; the stats-only native timeMs is shown only in variant details.
  • Vite build timings exclude fixture copy/setup; the Vize max lane sets precompileBatchSize to the benchmark file count so Blacksmith max runs one native precompile batch instead of the memory-safe default chunks.
  • Nuxt SPA build timings exclude synthetic app generation and compare nuxt build with Nuxt's default compiler against the same app with @vizejs/nuxt installed.
  • Single-thread lanes are shown where useful, and the primary speedup compares the incumbent default/single-thread lane with Vize's max runner lane.

Commands:

gh workflow run tool-benchmark.yml --ref <branch> -f file_count=3000 -f check_file_count=500 -f vite_file_count=1000 -f nuxt_file_count=250 -f large_blocks=300 -f runs=3 -f warmups=1 -f commit_results=true
node bench/generate.mjs 3000
node bench/compare-tools.mjs --input bench/__in__ --vize-bin target/release/vize --runs 3 --warmups 1 --check-file-count 500 --vite-file-count 1000 --nuxt-file-count 250 --large-blocks 300 --runner-label "blacksmith-32vcpu-ubuntu-2404" --out tool-benchmark-summary.md --json tool-benchmark-results.json --doc performance-blacksmith.md
Variant details and raw run times

SFC compile

Variant Median Throughput Raw measured runs
@vue/compiler-sfc (1T) 3.89s 772 files/s 3.89s, 3.89s, 3.84s
@vue/compiler-sfc (32 workers) 1.72s 1.7k files/s 1.75s, 1.64s, 1.72s
Vize native loop (1T) 684.9ms 4.4k files/s 684.9ms, 697.1ms, 670.6ms
Vize native batch results (max) 57.2ms 52.4k files/s 57.2ms, 54.5ms, 60.3ms
Vize native batch stats-only (core max) 38.2ms 78.6k files/s 38.2ms, 38.3ms, 37.4ms

Large SFC compile

Variant Median Throughput Raw measured runs
@vue/compiler-sfc (1T) 59.4ms 17 files/s 59.4ms, 61.4ms, 55.2ms
@vue/compiler-sfc (1 workers) 197.9ms 5 files/s 192.5ms, 201.2ms, 197.9ms
Vize native loop (1T) 21.0ms 48 files/s 21.0ms, 16.0ms, 24.3ms
Vize native batch results (max) 16.5ms 61 files/s 16.7ms, 15.9ms, 16.5ms
Vize native batch stats-only (core max) 15.9ms 63 files/s 15.9ms, 15.7ms, 16.2ms

Large SFC type check

Variant Median Throughput Raw measured runs
vue-tsc 805.8ms 1 files/s 805.8ms, 796.7ms, 834.4ms
Vize check (1T) 108.0ms 9 files/s 106.4ms, 108.0ms, 113.5ms
Vize check (max) 102.0ms 10 files/s 104.0ms, 102.0ms, 97.6ms

Lint

Variant Median Throughput Raw measured runs
eslint-plugin-vue (1T) 11.03s 272 files/s 11.03s, 11.05s, 10.71s
eslint-plugin-vue (32 workers) 3.76s 797 files/s 3.76s, 3.63s, 4.03s
Vize lint (1T) 446.1ms 6.7k files/s 446.1ms, 430.2ms, 446.3ms
Vize lint (max) 104.2ms 28.8k files/s 100.5ms, 112.2ms, 104.2ms

Format

Variant Median Throughput Raw measured runs
Prettier CLI 30.66s 98 files/s 30.61s, 30.66s, 31.08s
Vize fmt (1T) 2.27s 1.3k files/s 2.27s, 2.31s, 2.26s
Vize fmt (max) 445.8ms 6.7k files/s 445.8ms, 448.2ms, 426.5ms

Type check

Variant Median Throughput Raw measured runs
vue-tsc 5.35s 93 files/s 5.33s, 5.39s, 5.35s
Vize check (1T) 472.5ms 1.1k files/s 459.5ms, 487.5ms, 472.5ms
Vize check (max) 393.1ms 1.3k files/s 389.7ms, 401.6ms, 393.1ms

Vite build (end-to-end)

Variant Median Throughput Raw measured runs
@vitejs/plugin-vue 1.73s 579 files/s 1.73s, 1.73s, 1.71s
@vizejs/vite-plugin 1.48s 677 files/s 1.48s, 1.53s, 1.46s

Nuxt SPA build (end-to-end)

Variant Median Throughput Raw measured runs
Nuxt default compiler 4.46s 56 files/s 4.46s, 4.45s, 4.62s
@vizejs/nuxt 4.89s 51 files/s 4.85s, 4.89s, 4.89s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant