Skip to content

feat: add ReScript language support#707

Open
JohannesKlauss wants to merge 1 commit into
colbymchenry:mainfrom
JohannesKlauss:main
Open

feat: add ReScript language support#707
JohannesKlauss wants to merge 1 commit into
colbymchenry:mainfrom
JohannesKlauss:main

Conversation

@JohannesKlauss

Copy link
Copy Markdown

This PR adds support for the ReScript language as per #524 and #648

Extracts:

  • Functions, modules, records (struct), variants (enum), constants

  • Imports (open statements), call expressions

  • Decorator extraction (@react.component, @module, etc.)

  • Type annotation edges for parameters, return types, record fields

  • Nested module support

  • Graceful handling of destructuring patterns

  • Grammar and extension registration: .res, .resi mapped to rescript

  • Exposed extractTypeAnnotations on ExtractorContext

  • README + CHANGELOG updated

  • Tested on rescript-core (small), rescript-relay (medium), rescript compiler (large) and personal ReScript monorepo projects

I wasn't able to benchmark it, because I don't have claude code. I tested it in my own harness and it works.

- New extractor src/extraction/languages/rescript.ts
  - Functions, modules, records (struct), variants (enum), constants
  - Imports (open statements), call expressions
  - Decorator extraction (@react.component, @module, etc.)
  - Type annotation edges for parameters, return types, record fields
  - Nested module support
  - Graceful handling of destructuring patterns

- Grammar + extension registration: .res, .resi mapped to rescript
- Added to TYPE_ANNOTATION_LANGUAGES and built-in type filter
- Exposed extractTypeAnnotations on ExtractorContext
- 18 extraction tests covering all constructs
- README + CHANGELOG updated
- Benchmarked on rescript-core (small), rescript-relay (medium),
  rescript compiler (large) — all PASS
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