[TxMt] Re: Language Server Protocol (LSP)

Jacob Carlborg doob at me.com
Sun Dec 15 14:17:52 UTC 2019



> On 15 Dec 2019, at 14:26, f1nnix <ilya at rusanen.co.uk> wrote:
> 
> I've started to work on rough implementation: 
> https://github.com/f1nnix/LSP.tmbundle
> <https://github.com/f1nnix/LSP.tmbundle>  . Completion already ~works.
> 
> It would be nice, if someone could take a look at my questions about
> Textmate internal bundle mechanism. Thanks. 


* To run a command in the background, you need to create a subprocess and close stdout and stderr. See [1][2] for more details.

* It’s not possible to highlight arbitrary symbols.

* Regarding diagnostic reporting, It’s not possible highlight symbols. But it’s possible to show an icon in the gutter on a specific line. When the user clicks on the icon a message will be shown. Run “mate —help” and see the “mark” related flags. It would be something like: “mate foo.rb —line 3 —set-mark error:'missing symbol’”

* The callback for open document is called "callback.document.did-open”. Set that as the semantic class of a bundle command

* Regarding your last question: "Is there a way to run a command on file opening?”. I guess it’s the same answer as the previous question. I don’t think there’s a difference between opening a document or a file.

This is a list of semantic class callbacks that I’ve managed to collect from different places:

* callback.application.did-activate
* callback.application.did-deactivate
* callback.document.binary-export
* callback.document.binary-import
* callback.document.did-change-scm-status
* callback.document.did-open
* callback.document.did-reload
* callback.document.did-save
* callback.document.export
* callback.document.import
* callback.document.will-reload
* callback.document.will-save
* callback.double-click
* callback.file-browser.action-menu
* callback.mouse-click (old)
* callback.single-click
* callback.triple-click

For mouse click callbacks, the following modifiers can be used:

* dyn.modifier.shift
* dyn.modifier.control
* dyn.modifier.option
* dyn.modifier.command

The modifiers are set in "Scope Selector".

[1] https://wiki.macromates.com/HowTo/RunCommandInBackground
[2] https://github.com/textmate/d.tmbundle/blob/master/Support/lib/text_mate/process.rb

-- 
/Jacob Carlborg

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macromates.com/textmate/attachments/20191215/63c9bc34/attachment.html>


More information about the TextMate mailing list