mxsdev / ts-type-explorer

VSCode Extension & utilities for exploring TypeScript type information
https://marketplace.visualstudio.com/items?itemName=mxsdev.typescript-explorer&ssr=false
159 stars 4 forks source link

[Feature] Neovim support #34

Open b0o opened 1 year ago

b0o commented 1 year ago

Just want to say a big thanks for your extension - it's been a real life-saver while debugging complex types!

I'm a Neovim user, but I've got a VSCode instance running in the background just for your extension and a small handful of others. It would be amazing to see your extension as a Neovim plugin. I see from your dotfiles that you're a Neovim user as well, so I thought you might also be interested.

Considering the way you've modularized the extension, it seems creating a Neovim front-end should be pretty straightforward. What do you think? Perhaps using sidebar.nvim could make the process a bit easier?

Really looking forward to what comes next.

mxsdev commented 1 year ago

Hi! Thanks so much for reaching out :)

I was originally planning a neovim extension, but never got around to it since I didn't know if it would be of use to anyone. In my experience there were not many web developers using neovim, it was predominantly systems programmers. Things move fast though so maybe that's changed? I also had to switch to VSCode for my job, so that didn't help either haha.

I have implemented nested/folding sidebars in neovim plugins so I feel comfortable enough with the UI side of things.

The main challenge I foresaw is figuring out how to interface with lspconfig in such a way as to (1) enable custom global compiler plugins and (2) send custom lsp requests. The api is probably mostly undocumented, so it would just be time consuming.

Your kind words are very motivating, though, so I'll take another look for sure!

b0o commented 1 year ago

There are dozens of us!

For (2), I know of client.request(method, params, [handler], bufnr), as well as a lower-level interface via [client.rpc.request({method}, {params}, {callback}, {notify_reply_callback})](https://neovim.io/doc/user/lsp.html#vim.lsp.rpc.request()), those might help? I am personally not sure about (1).

xlboy commented 1 year ago

I have a need for this, along with some of my other friends who use neovim :)

net commented 5 months ago

I would love this in Neovim ❤️