-
Notifications
You must be signed in to change notification settings - Fork 452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
F# support #132
Comments
Hi there! F# is a lovely language; we’re glad to hear that people want to use it with Semantic. Though integrating with external tooling would be a fast way to get up and running, APIs to do so are not in our roadmap; for reasons of simplicity, compatibility, and speed, we’re locked in to the tree-sitter ecosystem. The first step would be to write a tree-sitter parser for F#; PR #131 contains a (draft) list of the subsequent steps. Though we don’t plan to tackle F# support ourselves for the time being, I really appreciate the report—it’s our intention for Semantic to work with ML-style languages like Haskell and F#, rather than just ALGOL descendants. |
I think it makes sense to list here also the OCaml, due to the sheer similarity of these languages. So probably a big chunk of the code can be shared between those. |
Now the OCaml support is being worked on, for those who will start to implement F# support, take a look at those: |
Any updates on the F# support? |
Any interest in supporting F#?
We have our own compiler APIs that enable all kinds of stuff based on structure and semantics; and it's part of the compiler proper, not some janky thing that breaks because the compiler changed stuff. You can see this in the Fable REPL, which supports a wide range of tooling features in the editor: https://fable.io/repl/
Based on looking at how you do things, you wouldn't be able to use this directly, which would imply a lot of work. F# syntax and semantic aren't trivial 😅. But if there was a way to extend this to allow the existing tooling support (which can run in a browser!), then we might be able to prioritize stuff on the F# side of things to make it easier.
The text was updated successfully, but these errors were encountered: