dotnet / dotnet/fsharp

Make F# AST parser available without all of FCS

Open
#18,704 10 comments 3 reactions 0 assignees View on GitHub
Area-SetupAndDelivery Feature Request
Dominant language
F#
Stars
4.3k
Forks
876
Avg merge
4d 22h
Merged PRs (30d)
144

Description

I have some projects which want to manipulate F# ASTs. Doing so generally requires a dependency on the full FSharp.Compiler.Services, as I understand it, and that's a pretty heavyweight dependency; for example, it requires the latest FSharp.Core.

Concrete example: I recently wrote an expect-testing framework [WoofWare.Expect](https://github.com/Smaug123/WoofWare.Expect), which just wants to do dumb string manipulation, locating string literals and doing source text replacement on them.

**Describe the solution you'd like**

Separate out AST parsing into a separate NuGet package with extremely lightweight dependencies (old FSharp.Core, etc). This should be sufficient to obtain and inspect ASTs. Ideally it would be possible to use this library to do some very basic output of F# source code for a given AST, but that's not completely necessary (Fantomas is the correct tool for that).

It would be fine to have this library extremely tightly version-coupled to FCS.

**Describe alternatives you've considered**

None

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.