I’d really like TextMate to support the Language Server Protocol for code completion, navigation etc. for various languages (in my case primarily Ruby, but LSP as such is language-agnostic).
To be honest, I don't have any clue (yet) what exactly needs to be done. However, there’s a already a vast amount of editors supporting LSP (see https://langserver.org/#implementations-client ) and I’m quite sure that investigating some of these implementations would give hints about how to add LSP support to TextMate.
Is there anyone else interested in this topic? Maybe we could team up?
s.
On 16 Sep 2019, at 11:16, Stefan Daschek stefan@daschek.net wrote:
I’d really like TextMate to support the Language Server Protocol for code completion, navigation etc. for various languages (in my case primarily Ruby, but LSP as such is language-agnostic).
To be honest, I don't have any clue (yet) what exactly needs to be done. However, there’s a already a vast amount of editors supporting LSP (see https://langserver.org/#implementations-client https://langserver.org/#implementations-client ) and I’m quite sure that investigating some of these implementations would give hints about how to add LSP support to TextMate.
Unfortunately I think there’s quite a lot that needs to be done other than setting up the actual communication with the server. I think TextMate are missing quite a few features. It needs better support for showing error messages, ideally inline. Better autocomplete, with support for documentation. It needs code navigation. Probably a lot more.
Is there anyone else interested in this topic? Maybe we could team up?
I’m definitely interested but I don’t really have any time available.
On 16 Sep 2019, at 11:16, Stefan Daschek wrote:
To be honest, I don't have any clue (yet) what exactly needs to be done […]
It’s something on my personal wishlist, but have been postponing it until after a non-“beta” release because it will require a lot of changes/rewriting, as the protocol needs to sync up edits, file renames, etc. between LSP server and client, so every place that TextMate may change the buffer, it will need to convert that into a JSON-RPC message with UTF-16 offsets and send it to the server.
While one could insert such sync code at the lowest level (the buffer class), this is not where we want to deal with graphical completion menus, file renames, etc. and I would prefer not to have LSP communication spread out over multiple components.
There’s a few other things that require rethinking the same components, and I’m currently doing a bit of experimentation with this. I’m not making any promises or predictions, just letting you know what’s currently on my mind.
Thanks for the update!
Unfortunately I don’t think I can help with any of the “behind the scenes” work, having almost no experience at all in Objective C and/or macOS programming.
However, if there's anything that needs to be done regarding bundles, please let me know!
s.
Am 18.09.19 um 09:18 schrieb Allan Odgaard:
On 16 Sep 2019, at 11:16, Stefan Daschek wrote:
To be honest, I don't have any clue (yet) what exactly needs to be done […]
It’s something on my personal wishlist, but have been postponing it until after a non-“beta” release because it will require a lot of changes/rewriting, as the protocol needs to sync up edits, file renames, etc. between LSP server and client, so every place that TextMate may change the buffer, it will need to convert that into a JSON-RPC message with UTF-16 offsets and send it to the server.
While one could insert such sync code at the lowest level (the buffer class), this is not where we want to deal with graphical completion menus, file renames, etc. and I would prefer not to have LSP communication spread out over multiple components.
There’s a few other things that require rethinking the same components, and I’m currently doing a bit of experimentation with this. I’m not making any promises or predictions, just letting you know what’s currently on my mind.
TextMate mailing list TextMate@lists.macromates.com https://lists.macromates.com/listinfo/textmate
On 18 Sep 2019, at 09:18, Allan Odgaard mailinglist@textmate.org wrote: It’s something on my personal wishlist, but have been postponing it until after a non-“beta” release
That’s great to hear. At least that it’s on the radar.