fsharp / emacs-fsharp-mode

F# Emacs mode
Apache License 2.0
205 stars 62 forks source link

Updating the configuration object to match Ionide configuration #332

Closed amcguier closed 1 year ago

amcguier commented 1 year ago

This PR should fix #331.

It also updates the configuration parameters to match the settings used in Ionide which enables some extra code analysis settings (warnings in the configuration).

This also ensures that parameters get passed correctly to the workspace/didChangeConfiguration as well, which was omitted in the previous settings PR.

amcguier commented 1 year ago

Any chance someone could rerun the tests, looks like their were temporary timeouts during the package restoration unrelated to my changes.

juergenhoetzel commented 1 year ago

Nice :+1:

I have only removed the eglot-fsharp--set-workspace-args function in the amended commit. eglot already uses the initialization options by calling the

(cl-defmethod eglot-initialization-options ((_server eglot-fsautocomplete)) 
...
amcguier commented 1 year ago

Whoops, I left that in, I cherry picked that initial commit in from a branch I was working on. I have an experimental branch that needs to set that so you can run FsAutoComplete at a solution level rather than on each project individually.

juergenhoetzel commented 1 year ago

BTW: The actual error in the original initialization option was the invalid fsharp key at the top level of the json object:

-  `(:fSharp ,eglot-fsharp-fsautocomplete-args))
+  eglot-fsharp-fsautocomplete-args)

so I guess fsautcomplete never actually used the init options.

amcguier commented 1 year ago

Yeah, I realize that the workspace/DidConfigurationChange call requires the :fSharp node to use the options and the intialize call expects the parameters not to be set there. I'll probably add that back in when I PR the other branch since you might change configurations (I'm working on support for workspace peek/load custom calls)