Simplify vim options changes

This commit is contained in:
Ben Jackson 2018-06-03 14:29:51 +01:00
commit 553ad95404
2 changed files with 35 additions and 19 deletions

View file

@ -266,15 +266,17 @@ class DebugSession( object ):
self._codeView = code.CodeView( vim.current.window ) self._codeView = code.CodeView( vim.current.window )
# Call stack # Call stack
with utils.TemporaryVimOptions( { 'splitright': False,
'equalalways': False, } ):
vim.command( 'topleft 50vspl' ) vim.command( 'topleft 50vspl' )
vim.command( 'enew' ) vim.command( 'enew' )
self._stackTraceView = stack_trace.StackTraceView( self, self._stackTraceView = stack_trace.StackTraceView( self,
self._connection, self._connection,
vim.current.buffer ) vim.current.buffer )
with utils.TemporaryVimOption( 'splitbelow', False ): with utils.TemporaryVimOptions( { 'splitbelow': False,
with utils.TemporaryVimOption( 'eadirection', 'ver' ): 'eadirection': 'ver',
with utils.TemporaryVimOption( 'equalalways', 1 ): 'equalalways': True } ):
# Watches # Watches
vim.command( 'spl' ) vim.command( 'spl' )
vim.command( 'enew' ) vim.command( 'enew' )

View file

@ -96,6 +96,20 @@ def RestoreCurrentBuffer( window ):
vim.current.buffer = old_buffer vim.current.buffer = old_buffer
@contextlib.contextmanager
def TemporaryVimOptions( opts ):
old_value = {}
try:
for option, value in opts.items():
old_value[ option ] = vim.options[ option ]
vim.options[ option ] = value
yield
finally:
for option, value in old_value.items():
vim.options[ option ] = value
@contextlib.contextmanager @contextlib.contextmanager
def TemporaryVimOption( opt, value ): def TemporaryVimOption( opt, value ):
old_value = vim.options[ opt ] old_value = vim.options[ opt ]