Add lsp stub services - #125
Conversation
1b9c746 to
154c364
Compare
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.50.
| Benchmark suite | Current: 68da275 | Previous: d803417 | Ratio |
|---|---|---|---|
BenchmarkWorkspaceCycle (typefox.dev/fastbelt/examples/statemachine) - MB/s |
12.98 MB/s |
5.21 MB/s |
2.49 |
This comment was automatically generated by workflow using github-action-benchmark.
a9cbd1c to
8be8f2b
Compare
a747f34 to
68da275
Compare
|
Thanks for the review @msujew. Included all suggestions.
|
Good idea 👍
I think we can remove them. It doesn't feel like they actually do anything beyond asserting that the interface works as intended - which isn't doing a lot to be honest. |
579a82f to
8d83666
Compare
|
Ok, implemented. Please have another look. |
|
FYI this needs a rebase due to LSP 3.18 update conflicts. I'll have another look once this is done. |
8d83666 to
45758d0
Compare
msujew
left a comment
There was a problem hiding this comment.
Thanks, looks quite nice. Just a few remarks, see below.
msujew
left a comment
There was a problem hiding this comment.
Thanks, I think this is good now.
Closes #28
Mostly ports from langium with go-idiomatic mechanisms for customization.
I refactored the original proposal. With the exceptions of Declaration, Implementation and Type Defintion, which provide meaningful defaults, all lsp stubs only provide the plain interface.
Semantic tokens is another exception, which I kept for comparison, but I guess it will be overwritten by the more sophisticated version in #136.
Added examples for Call Hierarchy, Code lens, Semantic tokens (which will be replaced), and Inlay Hints to the statemachine example to show adopters a working example.
ImplementationFilterremoved - the "type implements" heuristic requires language-specific type-system knowledge no generic filter can provideResolvingInlayHintProvidertoo?SignatureHelpProviderandSignatureHelpTriggersNodeAtCursor- now usesNameFinder. Fixed in both the godoc example and the statemachine exampleNodeAtCursorResolvingCodeActionProviderforcodeAction/resolvesupportResolvingCodeLensProviderforcodeLens/resolvesupport.ResolvingDocumentLinkProvidertoo?