13
13
from .tabpage import Tabpage
14
14
from .window import Window
15
15
from ..compat import IS_PYTHON3
16
- from ..util import format_exc_skip
16
+ from ..util import Version , format_exc_skip
17
17
18
18
__all__ = ('Nvim' )
19
19
@@ -74,14 +74,16 @@ def __init__(self, session, channel_id, metadata, types,
74
74
self ._session = session
75
75
self .channel_id = channel_id
76
76
self .metadata = metadata
77
+ version = metadata .get ("version" , {"api_level" : 0 })
78
+ self .version = Version (** version )
77
79
self .types = types
78
- self .api = RemoteApi (self , 'vim_ ' )
79
- self .vars = RemoteMap (self , 'vim_get_var ' , 'vim_set_var ' )
80
+ self .api = RemoteApi (self , 'nvim_ ' )
81
+ self .vars = RemoteMap (self , 'nvim_get_var ' , 'nvim_set_var ' )
80
82
self .vvars = RemoteMap (self , 'vim_get_vvar' , None )
81
- self .options = RemoteMap (self , 'vim_get_option ' , 'vim_set_option ' )
83
+ self .options = RemoteMap (self , 'nvim_get_option ' , 'nvim_set_option ' )
82
84
self .buffers = Buffers (self )
83
- self .windows = RemoteSequence (self , 'vim_get_windows ' )
84
- self .tabpages = RemoteSequence (self , 'vim_get_tabpages ' )
85
+ self .windows = RemoteSequence (self , 'nvim_list_wins ' )
86
+ self .tabpages = RemoteSequence (self , 'nvim_list_tabpages ' )
85
87
self .current = Current (self )
86
88
self .session = CompatibilitySession (self )
87
89
self .funcs = Funcs (self )
@@ -116,8 +118,8 @@ def request(self, name, *args, **kwargs):
116
118
117
119
is equivalent to
118
120
119
- vim.request('vim_err_write ', 'ERROR\n', async=True)
120
- vim.request('buffer_get_mark ', vim.current.buffer, '.')
121
+ vim.request('nvim_err_write ', 'ERROR\n', async=True)
122
+ vim.request('nvim_buf_get_mark ', vim.current.buffer, '.')
121
123
122
124
123
125
Normally a blocking request will be sent. If the `async` flag is
@@ -205,38 +207,38 @@ def ui_try_resize(self, width, height):
205
207
206
208
def subscribe (self , event ):
207
209
"""Subscribe to a Nvim event."""
208
- return self .request ('vim_subscribe ' , event )
210
+ return self .request ('nvim_subscribe ' , event )
209
211
210
212
def unsubscribe (self , event ):
211
213
"""Unsubscribe to a Nvim event."""
212
- return self .request ('vim_unsubscribe ' , event )
214
+ return self .request ('nvim_unsubscribe ' , event )
213
215
214
216
def command (self , string , ** kwargs ):
215
217
"""Execute a single ex command."""
216
- return self .request ('vim_command ' , string , ** kwargs )
218
+ return self .request ('nvim_command ' , string , ** kwargs )
217
219
218
220
def command_output (self , string ):
219
221
"""Execute a single ex command and return the output."""
220
- return self .request ('vim_command_output ' , string )
222
+ return self .request ('nvim_command_output ' , string )
221
223
222
224
def eval (self , string , ** kwargs ):
223
225
"""Evaluate a vimscript expression."""
224
- return self .request ('vim_eval ' , string , ** kwargs )
226
+ return self .request ('nvim_eval ' , string , ** kwargs )
225
227
226
228
def call (self , name , * args , ** kwargs ):
227
229
"""Call a vimscript function."""
228
- return self .request ('vim_call_function ' , name , args , ** kwargs )
230
+ return self .request ('nvim_call_function ' , name , args , ** kwargs )
229
231
230
232
def strwidth (self , string ):
231
233
"""Return the number of display cells `string` occupies.
232
234
233
235
Tab is counted as one cell.
234
236
"""
235
- return self .request ('vim_strwidth ' , string )
237
+ return self .request ('nvim_strwidth ' , string )
236
238
237
239
def list_runtime_paths (self ):
238
240
"""Return a list of paths contained in the 'runtimepath' option."""
239
- return self .request ('vim_list_runtime_paths ' )
241
+ return self .request ('nvim_list_runtime_paths ' )
240
242
241
243
def foreach_rtp (self , cb ):
242
244
"""Invoke `cb` for each path in 'runtimepath'.
@@ -246,7 +248,7 @@ def foreach_rtp(self, cb):
246
248
are no longer paths. If stopped in case callable returned non-None,
247
249
vim.foreach_rtp function returns the value returned by callable.
248
250
"""
249
- for path in self .request ('vim_list_runtime_paths ' ):
251
+ for path in self .request ('nvim_list_runtime_paths ' ):
250
252
try :
251
253
if cb (path ) is not None :
252
254
break
@@ -256,7 +258,7 @@ def foreach_rtp(self, cb):
256
258
def chdir (self , dir_path ):
257
259
"""Run os.chdir, then all appropriate vim stuff."""
258
260
os_chdir (dir_path )
259
- return self .request ('vim_change_directory ' , dir_path )
261
+ return self .request ('nvim_set_current_dir ' , dir_path )
260
262
261
263
def feedkeys (self , keys , options = '' , escape_csi = True ):
262
264
"""Push `keys` to Nvim user input buffer.
@@ -267,7 +269,7 @@ def feedkeys(self, keys, options='', escape_csi=True):
267
269
- 't': Handle keys as if typed; otherwise they are handled as if coming
268
270
from a mapping. This matters for undo, opening folds, etc.
269
271
"""
270
- return self .request ('vim_feedkeys ' , keys , options , escape_csi )
272
+ return self .request ('nvim_feedkeys ' , keys , options , escape_csi )
271
273
272
274
def input (self , bytes ):
273
275
"""Push `bytes` to Nvim low level input buffer.
@@ -277,7 +279,7 @@ def input(self, bytes):
277
279
written(which can be less than what was requested if the buffer is
278
280
full).
279
281
"""
280
- return self .request ('vim_input ' , bytes )
282
+ return self .request ('nvim_input ' , bytes )
281
283
282
284
def replace_termcodes (self , string , from_part = False , do_lt = True ,
283
285
special = True ):
@@ -298,11 +300,11 @@ def replace_termcodes(self, string, from_part=False, do_lt=True,
298
300
299
301
def out_write (self , msg ):
300
302
"""Print `msg` as a normal message."""
301
- return self .request ('vim_out_write ' , msg )
303
+ return self .request ('nvim_out_write ' , msg )
302
304
303
305
def err_write (self , msg , ** kwargs ):
304
306
"""Print `msg` as an error message."""
305
- return self .request ('vim_err_write ' , msg , ** kwargs )
307
+ return self .request ('nvim_err_write ' , msg , ** kwargs )
306
308
307
309
def quit (self , quit_command = 'qa!' ):
308
310
"""Send a quit command to Nvim.
@@ -359,7 +361,7 @@ class Buffers(object):
359
361
360
362
def __init__ (self , nvim ):
361
363
"""Initialize a Buffers object with Nvim object `nvim`."""
362
- self ._fetch_buffers = nvim .api .get_buffers
364
+ self ._fetch_buffers = nvim .api .list_bufs
363
365
364
366
def __len__ (self ):
365
367
"""Return the count of buffers."""
@@ -399,35 +401,35 @@ def __init__(self, session):
399
401
400
402
@property
401
403
def line (self ):
402
- return self ._session .request ('vim_get_current_line ' )
404
+ return self ._session .request ('nvim_get_current_line ' )
403
405
404
406
@line .setter
405
407
def line (self , line ):
406
- return self ._session .request ('vim_set_current_line ' , line )
408
+ return self ._session .request ('nvim_set_current_line ' , line )
407
409
408
410
@property
409
411
def buffer (self ):
410
- return self ._session .request ('vim_get_current_buffer ' )
412
+ return self ._session .request ('nvim_get_current_buf ' )
411
413
412
414
@buffer .setter
413
415
def buffer (self , buffer ):
414
- return self ._session .request ('vim_set_current_buffer ' , buffer )
416
+ return self ._session .request ('nvim_set_current_buf ' , buffer )
415
417
416
418
@property
417
419
def window (self ):
418
- return self ._session .request ('vim_get_current_window ' )
420
+ return self ._session .request ('nvim_get_current_win ' )
419
421
420
422
@window .setter
421
423
def window (self , window ):
422
- return self ._session .request ('vim_set_current_window ' , window )
424
+ return self ._session .request ('nvim_set_current_win ' , window )
423
425
424
426
@property
425
427
def tabpage (self ):
426
- return self ._session .request ('vim_get_current_tabpage ' )
428
+ return self ._session .request ('nvim_get_current_tabpage ' )
427
429
428
430
@tabpage .setter
429
431
def tabpage (self , tabpage ):
430
- return self ._session .request ('vim_set_current_tabpage ' , tabpage )
432
+ return self ._session .request ('nvim_set_current_tabpage ' , tabpage )
431
433
432
434
433
435
class Funcs (object ):
0 commit comments