Not directly related but given that rust-analyzer depends on the lsp-types crate I figured I'd share it here. I've opened a draft PR on lsp-types to add the missing types to support the new version of the specification: https://github.com/gluon-lang/lsp-types/pull/119
Still need to mark the newly deprecated fields as such, but I think it's pretty close to be done.
Oops! Good catch on the missing serde skips @Jeremy Kolb :smiley:
Yep! Left you some comments. Thanks for doing this.
Updated the PR with fixes for most of your comments. I do have a doubt though: I'm not sure what you meant by
I don't see the new registration option stuff yet.. Maybe I missed something in the change log? I can't see anything about new registration types.
Also, I renamed
WorkDoneProgressEnd. I considered creating a new type to maintain the legacy one, but as the library specifically states that the types behind the
proposed flag do not guarantee semver compatibility I figured we would be ok with just renaming it. This may be obviously revisited by the project maintainer, but wanted to get your opinion on this anyway
Ah I meant the
yeah i wouldn't worry about maintaining backwards compatibility with
ooh, yeah, I completely missed that. Searched for
@since 3.15.0 and that wasn't included :raised_hand: :pensive:
Yeah it's easy to miss changes in the spec that's for sure
oh, I found a bunch of proposed attributes that need dropping too. I'll try harder this time hehe
You may be able to follow the model used in https://github.com/gluon-lang/lsp-types/pull/110 for the
WorkDoneProgressOptions stuff (I haven't looked too closely).
So I was looking at the WorkDoneProgressOptions thing now. There a bunch of types that now extend on those, what you are saying is that that should be represented as a
pub work_done_progress_option: Option<WorkDoneProgressOption> attributed with
yeah I think that's the right approach