kate lsp client plugin

Mark Nauwelaerts mark.nauwelaerts at gmail.com
Sun Jul 7 13:55:29 BST 2019


On 07/07/19 14:39, Mark Nauwelaerts wrote:
> On 07/07/19 13:57, Christoph Cullmann wrote:
>> Hi,
>>
>>> Thanks for the appreciation :-)
>>>
>>> I indeed intend to continue, and some more commits on server control
>>> and configuration are coming up soon.
>>> Following that, I plan to add another (bottom) toolview to display
>>> info on diagnostics, references, (multiple) definitions ... Some
>>> highlight method calls are also related to that area, so may be
>>> considered along as well.  That's then heading in the direction of
>>> features proposed above, one step at a time ;-)
>>
>> Nice, keep the stuff going ;=)
>>
>> I was so free to implement a initial version of documentHighlight.
>>
>> Seems to work reasonable well, just need a way to later clear the ranges again.
>>
>> I aliased
>>
>> /**
>>  * Language Server Protocol Position
>>  * line + column, 0 based, negative for invalid
>>  * maps 1:1 to KTextEditor::Cursor
>>  */
>> using LSPPosition = KTextEditor::Cursor;
>>
>> /**
>>  * Language Server Protocol Range
>>  * start + end tuple of LSPPosition
>>  * maps 1:1 to KTextEditor::Range
>>  */
>> using LSPRange = KTextEditor::Range;
>>
>> as these types really map 1:1, even the semantics of "negative == invalid".
>>
>> This avoid the conversions and allows to use the convenience API of the 
>> cursor/range
>> we provide.
>>
>> I hope this is ok?
>>
>> Greetings
>> Christoph
>>
> I probably "duplicated" the Position and Range type in an attempt/idea to make 
> the lower level protocol/server only depend on own or "low level" (Qt) types.  
> But that is not quite primordial so if it alternatively also works and 
> compiles that way ... albeit then probably with some adjustment here or there 
> for line() or column() accessors.
>
> So I kept going ;-) and then I should probably mention that I added support 
> for "references".  And moreover also added a minimalistic (bottom) toolview 
> and arranged for adding marks (markinterface) and highlight (movingrange) for 
> the (location) results of "definition", "declaration" and "references".  They 
> are also cleared at suitable times.  As such, it is then a small 
> (planned/next) step to do so as well for "documentHighlight".  As you 
> presumably already have the parsing for the latter, I could push the (almost 
> finished/polished) former (on "references" and such) this evening, and then 
> you could rebase (cough, or a tad more than that)?  Or alternatively, if you 
> prefer I could integrate/rebase your patches if short on time/opportunity.
>
> Beyond that step, I was/am planning to handle diagnostics notification, along 
> with any highlighting/marking that might involve.  So that will also involve 
> that (code) area ...
>
> Regards,
> Mark.
>
>
Ah, forget a lot of that, I did not notice you had already pushed it ... so I 
will take care of integrate/merge/rebase anyway ... ;-)

Regards,
Mark.



More information about the KWrite-Devel mailing list