You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today, there is no more integration with ionide F# plugin (through FsAutoComplete).
With the current implementation (FSAC directly referencing FSharpLint.Core), it means both FSharpLint & FSAC must share the same version of FSharp.Compiler.Service.
As discussed in ionide/FsAutoComplete#942, an alternative solution could be to implement a API layer between FSharpLint.Core & FSAC, so FSharp.Compiler.Service could be abstracted using dedicated types (same solution that Fantomas is using)
To summarize the integration with FSAC this new API :
sequenceDiagram
box green FsAutoComplete process
participant FsAutoComplete
participant FSharpLint.Client
end
box blue FSharpLint process
participant FSharpLint.Console
end
FsAutoComplete->>FSharpLint.Client: GetDaemon
FSharpLint.Client->>FSharpLint.Console: Start Daemon
FSharpLint.Console-->>FSharpLint.Client:
FSharpLint.Client->FSharpLint.Console: Setup jsonrpc
FSharpLint.Console-->>FSharpLint.Client:
FSharpLint.Client-->>FsAutoComplete:
Note over FsAutoComplete,FSharpLint.Client: Later, when a lint is needed
FsAutoComplete->>FSharpLint.Client: LintRequest
FSharpLint.Client->>FSharpLint.Console: LintRequest
FSharpLint.Console->>FSharpLint.Console: Lint with FSharp.Compiler.Service
FSharpLint.Console-->>FSharpLint.Client: LintResponse<br/>(no FSharp.Compiler.Service types here)
FSharpLint.Client-->>FsAutoComplete: LintResponse
Hello @MrLuje! Yes, this would be very useful so that, if we lag behind again about updating to the last versions of FCS, the last version of the IDEs can still use FSharpLint.
So please go ahead and work on this, we will happily accept PRs. (Side note: we're probably going to merge some work soon that updates FSharpLint to the latest version of FCS; but regardless of that, and as I said above already, your work will still be valuable anyway; only thing to take in account is that if we merge our PRs before yours, you might need to rebase your work.)
Description
Today, there is no more integration with ionide F# plugin (through FsAutoComplete).
With the current implementation (FSAC directly referencing FSharpLint.Core), it means both FSharpLint & FSAC must share the same version of FSharp.Compiler.Service.
As discussed in ionide/FsAutoComplete#942, an alternative solution could be to implement a API layer between FSharpLint.Core & FSAC, so FSharp.Compiler.Service could be abstracted using dedicated types (same solution that Fantomas is using)
To summarize the integration with FSAC this new API :
TODO:
version
method for the Client/Console flow (Create an API layer for external process #637)lint
method (that will call val lintFile : optionalParams:OptionalLintParameters -> filePath:string -> LintResult method) (Add LintFile method to API layer #663)I would like a confirmation that this feature is ok for you guys and I'm willing to work on it
The text was updated successfully, but these errors were encountered: