LanguageServerProtocol
LanguageServerProtocol copied to clipboard
Generate types from meta model
WHAT
๐ค Generated by Copilot at 198ad18
This pull request improves the F# code formatting and testing of the language server protocol library. It updates the .editorconfig file, the test project, and the fantomas tool.
๐ค Generated by Copilot at 198ad18
fantomasrenamed F# code gets formatted well Autumn ofAST
๐ง๐๐งช
WHY
Generates types from the metaModel provided by the LSP spec. Hopefully makes it so we don't have to hand roll as much and can stay up to date easier.
- [x] Generate Structures
- [x] Generate Enumerations
- [x] Generate Type Aliases
- [ ] Generate XML docs *1
- [ ] Check serialization/deserialization
1. Currently their metaModel docs have some stuff but it's not as extensive as use manually copying the docs from the LSP spec page itself.
Maybes:
- [ ] Generate Interfaces/Abstract classes for Requests
- [ ] Generate Interfaces/Abstract classes for Notifications
HOW
๐ค Generated by Copilot at 198ad18
- Rename
fantomas-tooltofantomasindotnet-tools.jsonto use latest version of F# formatter (link) - Update
TargetFrameworktonet7.0intests/Ionide.LanguageServerProtocol.Tests.fsprojto use latest .NET SDK (link) - Add
GenerateTests.fstotests/Ionide.LanguageServerProtocol.Tests.fsprojto generate test cases for language server protocol messages (link) - Add
Fabulous.ASTpackage totests/Ionide.LanguageServerProtocol.Tests.fsprojto work with abstract syntax trees in F# (link) - Remove
fsharp_max_infix_operator_expressionsetting from.editorconfigto avoid formatting issues withfantomas(link) - Add new settings to
.editorconfigto control formatting of brackets, blank lines, arrays, lists, and lambdas in F# (link)