mhinz / neovim-remote

:ok_hand: Support for --remote and friends.
MIT License
1.73k stars 83 forks source link

Error when Neovim raises an error when opening a file #189

Open joshbode opened 1 year ago

joshbode commented 1 year ago

It appears that nvr assumes that the argument to the exception raised by pynvim is of type bytes, however (recently?) is is of type str.

$ nvr ~/.profile
Traceback (most recent call last):
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/nvr/nvr.py", line 138, in execute
    self.fnameescaped_command(cmd, fname)
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/nvr/nvr.py", line 100, in fnameescaped_command
    self.server.command(f'{cmd} {path}')
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/pynvim/api/nvim.py", line 287, in command
    return self.request('nvim_command', string, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/pynvim/api/nvim.py", line 182, in request
    res = self._session.request(name, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/pynvim/msgpack_rpc/session.py", line 102, in request
    raise self.error_wrapper(err)
pynvim.api.common.NvimError: BufReadPost Autocommands for "*": Vim(append):Error executing lua callback: XXX
stack traceback:
        [builtin#19]: at 0x7fa8258539a0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/josh/.local/share/pipx/bin/nvr", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/nvr/nvr.py", line 444, in main
    proceed_after_attach(nvr, options, arguments)
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/nvr/nvr.py", line 528, in proceed_after_attach
    nvr.execute(arguments, 'edit', silent=True)
  File "/home/josh/.local/share/pipx/venvs/neovim-remote/lib/python3.11/site-packages/nvr/nvr.py", line 140, in execute
    if not re.search('E37', e.args[0].decode()):
                            ^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'decode'. Did you mean: 'encode'?

Versions:

$ python --version
Python 3.11.3

$ python -m pip list
Package       Version
------------- -------
greenlet      2.0.2
msgpack       1.0.5
neovim-remote 2.5.1
pip           23.1.2
psutil        5.9.5
pynvim        0.4.3
setuptools    67.8.0
wheel         0.40.0

Also affects Python 3.9 and 3.10