Skip to content
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

Make lsp-fsharp more configurable #4048

Open
Gastove opened this issue May 13, 2023 · 0 comments · May be fixed by #4049
Open

Make lsp-fsharp more configurable #4048

Gastove opened this issue May 13, 2023 · 0 comments · May be fixed by #4049

Comments

@Gastove
Copy link
Contributor

Gastove commented May 13, 2023

The F# tooling for lsp-mode currently implements a workspace loading system in which this flow is implemented using custom FsAutoComplete RPCs:

  1. The client sends a "peek" request (fsharp/workspacePeek), which contains a list of directories to exclude from peeking.
  2. The server replies with all the F# project files it can find.
  3. The client uses the list of discovered project files to issue a "load" request (fsharp/workspaceLoad).
  4. FsAutoComplete loads the specified project(s).
  5. Two success messages are issued: one when the projects start loading, the second when all projects finish loading.

Currently, the list of directories to exclude is hard-coded. This can be an issue depending on the rest of the development toolchain in use. For instance: some Nix tooling creates a directory in which symlinks to dependencies are stored. The fsharp/workspacePeek request erroneously searches this directory, which turns up many F# project files; lsp-fsharp sends the first success message, but loading never completes.

This is, admittedly, an edge-case, but it's an extremely simple PR to provide configs for, and serves as a fairly helpful debugging hint, given the way this edge-case causes false success reports.

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 a pull request may close this issue.

1 participant