Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vim-lsp 2020 #624

Closed
7 of 15 tasks
prabirshrestha opened this issue Dec 25, 2019 · 14 comments
Closed
7 of 15 tasks

vim-lsp 2020 #624

prabirshrestha opened this issue Dec 25, 2019 · 14 comments
Labels

Comments

@prabirshrestha
Copy link
Owner

prabirshrestha commented Dec 25, 2019

Let us this issue to discuss what we would like to work on for 2020.

Here are some of the high level

Infra

  • Improve integration tests so that it tests with real language server. We should create a docker image so we don't have to be install language server during CI. Ok for this to run only in linux docker images as long as the utils such as file conversion runs in all OS and vim and neovim. Uses rust-analyzer for integration tests.
  • Split LSP actions to separate files and provide common interface for them.
  • call s:ensure_flush() after applying workspace edits #121 call s:ensure_flush() after applying workspace edits
  • s:on_text_document_did_change isn't fired in normal mode #125 s:on_text_document_did_change isn't fired in normal mode

New Users

  • Create docker image for new users to try vim-lsp
  • embed async.vim??? This might make it easy for new users to get started.

Features

Perf improvements

  • improve diff performance
  • profile more bottleneck and improve perf.
@mattn
Copy link
Collaborator

mattn commented Jan 8, 2020

+1 to add :LspAllDocumentDiagnostics. Some LS send diagnostics that are not opened files in Vim. But these are useful to notice errors.

@habamax
Copy link
Contributor

habamax commented Feb 18, 2020

Non stdio support (TCP) ? There are some servers that support only TCP (godot game engine as example) and for vim there is only coc that can work with it.

godotengine/godot#34523 (comment)

@Isos9
Copy link

Isos9 commented Mar 23, 2020

disable/enable virtual text for a specific diagnostic type. That would be nice.

@adaszko
Copy link

adaszko commented Mar 24, 2020

Thank you for your continued development of vim-lsp! It's great!

What I miss the most is the ability to call its (autoload) functions from my VimScript code so that I can tailor its behavior better to my needs. Commands like LspDefinition perform a side effect, which is of course jumping to a location where a identifier under the cursor is defined and also modifying the quickfix list. What I would prefer instead (or perhaps in addition to it to preserve compatibility) is to have a VimScript functions like lsp#get_definition_location(identifier) exposed, that would return e.g. a dictionary/a list of dictionaries {'filename': ..., 'lnum': ..., 'col': ...} that I can interpret in my .vimrc. It wouldn't touch either the cursor location or the quickfix list.

A similar argument goes for LspReferences: If I could call a function lsp#get_references(identifier) returning a list of locations, I could feed its output into my quick picker of choosing (i.e. FZF).

And so on for other commands: LspWorkspaceSymbol, LspDocumentSymbol, etc.

@martskins
Copy link

Just started using vim-lsp a few days ago, so forgive me if this is already there and I just couldn't find it, but I would love to see code lens support.

@randomgeek78
Copy link
Contributor

I have created a docker image for my purposes - not shared yet. I can work on the docker image piece if it is not already taken up. What do you need for it?

@prabirshrestha
Copy link
Owner Author

@randomgeek78 feel free to start a new thread on docker and more than happy to have discussions there. Ideally I want someone to use docker run vim-lsp which comes with vim, neovim, vim-lsp-settings, asyncomplete, asyncomplete-lsp.vim so people can start trying out vim-lsp and experience it. There is https://github.com/prabirshrestha/vim-lsp/blob/master/minimal.vimrc which can be used as the base of vimrc I would like to see.

@randomgeek78
Copy link
Contributor

Cool. Let me create a new thread. Tx

@stale
Copy link

stale bot commented Oct 30, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Oct 30, 2020
@stale stale bot closed this as completed Nov 6, 2020
@idbrii
Copy link
Contributor

idbrii commented Nov 11, 2020

@prabirshrestha You may want to add "pinned" label to this issue to prevent stale bot from closing.

@prabirshrestha
Copy link
Owner Author

integration tests are now supported via rust-analyzer. #959

@prabirshrestha
Copy link
Owner Author

@idbrii any reason you want the issue to be still open. We are about to be done with 2020 and most of the items I would like to work on are done or have started.

@prabirshrestha
Copy link
Owner Author

@mattn I sent a PR to show the document diagnostics for all buffers at #982. Let me know if that works. You can try it with :LspDocumentDiagnostics --buffers=*

@idbrii
Copy link
Contributor

idbrii commented Dec 29, 2020

@prabirshrestha I suggested keeping it open to make it easier to find. As a user it takes more digging to find the current priorities and looks like the task list isn't still relevant/active when it's closed.

But you're right, 2020 is nearly done, so no point in reopening.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants