feat(extraction): add Slint language support#1081
Open
ZyphrZero wants to merge 3 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.slint) as a supported language with a vendored ABI-15 tree-sitter grammar.export { AboutPage } from "about_page.slint";so barrel-only files create import nodes and resolved cross-fileimportsedges.Refs #648
Refs #916
Validation
npm run buildwith Nodev24.14.0: passed.npx vitest run __tests__/slint-extraction.test.ts: passed, 5 tests.npx vitest run __tests__/slint-extraction.test.ts --pool=forks --maxWorkers=1 --minWorkers=1: passed, 5 tests.npx vitest run __tests__/extraction.test.ts -t "React|TSX|component": passed, 14 selected tests..slintproject withdist/bin/codegraph.js; status reportedlanguages: ["slint"], 1 file, 6 nodes, 8 edges.pages.slintbarrel and verified SQLite edges frompages.slinttoAboutPage,TableViewPage, andTableViewPageAdapterin the target files.Full-suite status on Windows
npm testis not green in this Windows checkout. The failures are outside the Slint extractor path: temp-dirEPERMcleanup in JVM/C++/PHP/MCP tests, MCP initialize/roots Windows file-lock failures, worktree tests comparing shortADMINI~1paths with longAdministratorpaths, and a Vitest worker OOM when running the largeextraction.test.tsfile.Add-language extraction benchmark
Ran
scripts/add-lang/bench.sh slint <repo> <url> "<question>" headlesswith the local PR build viaCG_BIN=/tmp/codegraph-dev-bin/codegraphon 2026-06-30. After the re-export fix, extraction was rerun and the large repo index grew as expected.slint-nodejs-templateSurrealismUIslintPaid agent A/B benchmark
Headless Claude Code A/B (
--model sonnet --effort high,--max-budget-usd 4) comparing local CodeGraph MCP vs no CodeGraph MCP.slint-nodejs-templateslint-nodejs-templateSurrealismUISurrealismUIPrevious valid large-repo paid A/B run, before the re-export fix:
slintslintThe large-repo paid A/B rerun after the re-export fix was blocked by API
402 Insufficient Balancein both arms, so I am not claiming post-fix large A/B numbers. The post-fix extraction benchmark did complete and shows the largerslintrepo index increasing from 41,774 nodes / 142,923 edges to 42,001 nodes / 143,353 edges.Notes
examples/gallery/ui/pages/pages.slintonly re-export symbols and previously indexed with no useful dependencies. This PR now links those barrels to the exported target symbols.slintrun reduced duration, total tool calls, Reads, and Bash/Grep usage, but still fell back to 7 Reads and cost more than the no-CodeGraph arm. The residual fallback is around the mixed Slint/Rustinclude_modules!/ generated-runtime boundary, so this PR proves useful Slint extraction but does not claim complete cross-language macro/runtime flow coverage.