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

Convert Result string Error Handling to Option Where Applicable #1199

Closed
wants to merge 33 commits into from

Conversation

1eyewonder
Copy link
Contributor

@1eyewonder 1eyewonder commented Nov 11, 2023

WHAT

🤖 Generated by Copilot at da3703a

This pull request refactors the error handling logic in various modules of the FsAutoComplete project to use option types instead of result types and strings for errors. It also adds a new dependency to the FsToolkit.ErrorHandling library, which provides some utilities for functional error handling in F#. The main goal of this refactoring is to simplify the code and make it more consistent and expressive. The affected modules include Commands, CodeFixes, AdaptiveFSharpLspServer, and AdaptiveState. The affected files include src/FsAutoComplete.Core/Commands.fs, src/FsAutoComplete/CodeFixes.fs, src/FsAutoComplete/CodeFixes.fsi, src/FsAutoComplete/CodeFixes/RemoveUnusedOpens.fs, src/FsAutoComplete/LspServers/AdaptiveFSharpLspServer.fs, src/FsAutoComplete/LspServers/AdaptiveServerState.fs, src/FsAutoComplete/LspServers/AdaptiveServerState.fsi, paket.dependencies, src/FsAutoComplete.Core/paket.references, src/FsAutoComplete/CodeFixes/AddPrivateAccessModifier.fs, src/FsAutoComplete/CodeFixes/AddPrivateAccessModifier.fsi, and src/FsAutoComplete/LspServers/Common.fs.

🤖 Generated by Copilot at da3703a

We're sailing on the F# sea, with option types for free
We've left behind the result strings, they only caused us trouble
So heave away, me hearties, heave away with glee
We're using FsToolkit.ErrorHandling, that's the library

📦🛠️🚀

WHY

HOW

🤖 Generated by Copilot at da3703a

  • Simplify error handling logic and avoid using strings for errors by replacing result types with option types or value option types from FsToolkit.ErrorHandling library (link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link,link) in files src/FsAutoComplete.Core/Commands.fs, src/FsAutoComplete/CodeFixes.fs, src/FsAutoComplete/CodeFixes.fsi, src/FsAutoComplete/CodeFixes/AddPrivateAccessModifier.fs, src/FsAutoComplete/CodeFixes/AddPrivateAccessModifier.fsi, src/FsAutoComplete/CodeFixes/RemoveUnusedOpens.fs, src/FsAutoComplete/LspServers/AdaptiveFSharpLspServer.fs, src/FsAutoComplete/LspServers/AdaptiveServerState.fs, and src/FsAutoComplete/LspServers/AdaptiveServerState.fsi.

@1eyewonder 1eyewonder changed the title Convert Result<'T, string> to 'T option Where Applicable Convert Result string Error Handling to Option Where Applicable Nov 12, 2023
AdaptiveFSharpLspServer.fs
@1eyewonder 1eyewonder marked this pull request as ready for review November 13, 2023 22:31
@1eyewonder
Copy link
Contributor Author

Closing because I realized I didn't pay attention towards the end of the Amplifying FSharp video. #1195 already tackles the main function I was refactoring but uses Result instead of Option. For my sanity I am going to close this PR and open a new one with different snippets I found during mind findings in this PR.

@1eyewonder 1eyewonder closed this Nov 18, 2023
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 this pull request may close these issues.

1 participant