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

[WIP] Support neovim #30

Closed
wants to merge 4 commits into from
Closed

Conversation

romgrk
Copy link

@romgrk romgrk commented May 28, 2019

Closes #29

Work in progress.

Tasks:

  • remove bindeval
  • adapter for job & channel API
  • polyfill for prompt buffers

@puremourning
Copy link
Owner

This change is Reviewable

@jpfeiffer16
Copy link
Contributor

Hi. Is there anything I can do to help with this PR? I'm interested in neovim and windows support.

@puremourning
Copy link
Owner

We discussed this in Gitter, but right now the level of polly fill required to make Neovim support the features of Vim that Vimspector uses is disappointing. We either need neovim to support them (prompt buffers, WinBar) or alternative UI paradigms for these elements. I don't really want pages of vimscript that only runs in neovim because my testing burden is too high to support that, as I don't use neovim (unless we have super solid CI tests for it etc., but that's a big enough job, and of course the testing framework that I have doesn't work with neovim).

Regarding windows support - PRs are welcome to support windows, and get the tests running in Azure. Not that much is required (probably mostly path related).

@jpfeiffer16
Copy link
Contributor

Ah. Ok, I'll go check that thread out. Thanks!
I wonder why those patches couldn't just be brought in from vim.

@puremourning
Copy link
Owner

Not sure either. I don’t really follow the neovim model anymore. It’s become just a fork which is just a shame from plugin community perspective. If anyone wants to get vimspector and neovim working together in harmony and volunteer to permanently maintain that then we can chat on gitter but I personally don’t have the impetus to do so.

@jpfeiffer16
Copy link
Contributor

Yea. It's a shame. There are real merits to neovim I think. Fingers crossed that those patches get pulled in with an upcoming neovim release.

@doronbehar
Copy link

Hey guys, just wanted to share with you the fact that I've tried testing neovim/neovim#10433 by checking it out and build Neovim locally with it merged.

It seems it should be possible to use a custom build of Neovim and with this PR merged as well it can work out. But there seems there's still some work left to be done here. I'm trying to let them know that merging it will be extremely beneficial for us. (neovim/neovim#10433 (comment))

Checking out this PR and testing with the new Neovim binary and pressing F5 gave me the following error:

Error detected while processing function vimspector#internal#channel#Timeout[3]..provider#python3#Call:
line   18:
Error invoking 'python_execute' on channel 12 (python3-script-host):
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'vim' is not defined

@eyalk5
Copy link
Contributor

eyalk5 commented Nov 15, 2019

It seems like something silly. Have you run checkhealth provider?

@doronbehar
Copy link

Yes:

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: xsel

## Python 2 provider (optional)
  - INFO: Disabled (g:loaded_python_provider=1).  This might be due to some previous error.
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /run/current-system/sw/bin/python2 does not have the "neovim" module. :help |provider-python|
          /run/current-system/sw/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          /nix/store/jg5i7f2cgb83s2ddglivalbiqimz9ghf-python3-3.7.5-env/bin/python is Python 3.7 and cannot provide Python 2.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: Using: g:python3_host_prog = "/nix/store/d78lg0h68ryn4gkzc9mjzahmxzq460sk-neovim-0.4.2/bin/nvim-python3"
  - INFO: Executable: /nix/store/d78lg0h68ryn4gkzc9mjzahmxzq460sk-neovim-0.4.2/bin/nvim-python3
  - INFO: Python version: 3.7.4
  - INFO: pynvim version: 0.3.2 (outdated; from /nix/store/c9gkb9gxnkxcd41sgvn1wbjlds1j69r5-python3-3.7.4-env/lib/python3.7/site-packages/neovim)
  - WARNING: Latest pynvim is NOT installed: 0.4.0

## Ruby provider (optional)
  - INFO: Disabled. g:loaded_ruby_provider=1

## Node.js provider (optional)
  - INFO: Disabled. g:loaded_node_provider=1

BTW pynvim 0.4.0 was released less then an hour ago.

@puremourning
Copy link
Owner

#76

@puremourning
Copy link
Owner

@romgrk @doronbehar @jpfeiffer16 thanks for all of your contributions on this. I am closing this in favour of #77, though i certainly used this for inspiration, along with comments on #52 .

There's a neovim branch and also a windows branch. neovim is the current focus.

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

Successfully merging this pull request may close these issues.

[Feature Request]: Support neovim
5 participants