Skip to content

Commit 98105cc

Browse files
committed
Merge pull request #33 from tarruda/api-error-improvements
Update Nvim error handling
2 parents b3e2db6 + 97045fb commit 98105cc

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

neovim/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ def rpc_request(self, method, args, expected_type=None, decode_str=None):
9797
err, result = self.rpc_blocking_request(method, args, decode_str=decode_str)
9898

9999
if err:
100-
raise VimError(err)
100+
info("'Received error of type '%d'", err[0])
101+
raise VimError(err[1])
101102

102103
return result
103104

neovim/uv_stream.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def __init__(self, address=None, port=None, spawn_argv=None):
2323
self._term.start(self._on_signal, signal.SIGTERM)
2424
self._int = pyuv.Signal(self._loop)
2525
self._int.start(self._on_signal, signal.SIGINT)
26+
self._ignore_sigint = False
2627
self._signames = dict((k, v) for v, k in signal.__dict__.items() \
2728
if v.startswith('SIG'))
2829
self._error_stream = None
@@ -59,6 +60,8 @@ def init_stdio(self):
5960
self._write_stream = pyuv.Pipe(self._loop)
6061
self._write_stream.open(sys.stdout.fileno())
6162
self._connected = True
63+
# ignore SIGINT in this mode
64+
self._ignore_sigint = True
6265

6366

6467
def init_spawn(self, argv):
@@ -96,6 +99,8 @@ def _on_connect(self, stream, error):
9699

97100

98101
def _on_signal(self, handle, signum):
102+
if self._ignore_sigint and signum == signal.SIGINT:
103+
return
99104
self.loop_stop()
100105
err = Exception('Received %s' % self._signames[signum])
101106
if not self._error_cb:

0 commit comments

Comments
 (0)