Add a way to have multiple vim API layers

This commit is contained in:
Ben Jackson 2020-01-08 17:26:38 +00:00
commit 18627b9244
6 changed files with 35 additions and 20 deletions

View file

@ -22,8 +22,9 @@ from vimspector import utils
class CodeView( object ):
def __init__( self, window ):
def __init__( self, window, api_prefix ):
self._window = window
self._api_prefix = api_prefix
self._terminal_window = None
self._terminal_buffer_number = None
@ -214,7 +215,8 @@ class CodeView( object ):
if self._terminal_window is not None:
assert self._terminal_buffer_number
if ( self._terminal_window.buffer.number == self._terminal_buffer_number
and int( utils.Call( 'vimspector#internal#term#IsFinished',
and int( utils.Call( 'vimspector#internal#{}term#IsFinished'.format(
self._api_prefix ),
self._terminal_buffer_number ) ) ):
window_for_start = self._terminal_window
options[ 'curwin' ] = 1
@ -224,9 +226,11 @@ class CodeView( object ):
with utils.TemporaryVimOptions( { 'splitright': True,
'equalalways': False } ):
with utils.LetCurrentWindow( window_for_start ):
buffer_number = int( utils.Call( 'vimspector#internal#term#Start',
args,
options ) )
buffer_number = int(
utils.Call(
'vimspector#internal#{}term#Start'.format( self._api_prefix ),
args,
options ) )
terminal_window = vim.current.window
if buffer_number is None or buffer_number <= 0: