Improve gadget installation; add system wide adapter config
This commit is contained in:
parent
0b1a06f47e
commit
14f6814ff1
6 changed files with 169 additions and 22 deletions
|
|
@ -25,16 +25,27 @@ from collections import defaultdict
|
|||
from vimspector import ( breakpoints,
|
||||
code,
|
||||
debug_adapter_connection,
|
||||
install,
|
||||
output,
|
||||
stack_trace,
|
||||
utils,
|
||||
variables )
|
||||
|
||||
VIMSPECTOR_HOME = os.path.abspath( os.path.join( os.path.dirname( __file__ ),
|
||||
'..',
|
||||
'..' ) )
|
||||
|
||||
|
||||
class DebugSession( object ):
|
||||
def __init__( self ):
|
||||
self._logger = logging.getLogger( __name__ )
|
||||
utils.SetUpLogging( self._logger )
|
||||
|
||||
self._logger.info( 'VIMSPECTOR_HOME = %s', VIMSPECTOR_HOME )
|
||||
self._logger.info( 'gadgetDir = %s',
|
||||
install.GetGadgetDir( VIMSPECTOR_HOME,
|
||||
install.GetOS() ) )
|
||||
|
||||
self._uiTab = None
|
||||
self._stackTraceView = None
|
||||
self._variablesView = None
|
||||
|
|
@ -66,7 +77,15 @@ class DebugSession( object ):
|
|||
database = json.load( f )
|
||||
|
||||
configurations = database.get( 'configurations' )
|
||||
adapters = database.get( 'adapters' )
|
||||
adapters = {}
|
||||
|
||||
for gadget_config_file in [ install.GetGadgetConfigFile( VIMSPECTOR_HOME ),
|
||||
utils.PathToConfigFile( '.gadgets.json' ) ]:
|
||||
if gadget_config_file and os.path.exists( gadget_config_file ):
|
||||
with open( gadget_config_file, 'r' ) as f:
|
||||
adapters.update( json.load( f ).get( 'adapters' ) or {} )
|
||||
|
||||
adapters.update( database.get( 'adapters' ) or {} )
|
||||
|
||||
if len( configurations ) == 1:
|
||||
configuration_name = next( iter( configurations.keys() ) )
|
||||
|
|
@ -90,7 +109,8 @@ class DebugSession( object ):
|
|||
# way to load .vimspector.local.json which just sets variables
|
||||
self._variables = {
|
||||
'dollar': '$', # HACK
|
||||
'workspaceRoot': self._workspace_root
|
||||
'workspaceRoot': self._workspace_root,
|
||||
'gadgetDir': install.GetGadgetDir( VIMSPECTOR_HOME, install.GetOS() )
|
||||
}
|
||||
self._variables.update( adapter.get( 'variables', {} ) )
|
||||
self._variables.update( configuration.get( 'variables', {} ) )
|
||||
|
|
|
|||
32
python3/vimspector/install.py
Normal file
32
python3/vimspector/install.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# vimspector - A multi-language debugging system for Vim
|
||||
# Copyright 2019 Ben Jackson
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import platform
|
||||
import os
|
||||
|
||||
def GetOS():
|
||||
if platform.system() == 'Darwin':
|
||||
return 'macos'
|
||||
elif platform.system() == 'Winwdows':
|
||||
return 'windows'
|
||||
else:
|
||||
return 'linux'
|
||||
|
||||
def GetGadgetDir( vimspector_base, OS ):
|
||||
return os.path.join( os.path.abspath( vimspector_base ), 'gadgets', OS )
|
||||
|
||||
def GetGadgetConfigFile( vimspector_base ):
|
||||
return os.path.join( GetGadgetDir( vimspector_base, GetOS() ),
|
||||
'.gadgets.json' )
|
||||
|
|
@ -279,7 +279,7 @@ def AppendToBuffer( buf, line_or_lines, modified=False ):
|
|||
line = 1
|
||||
buf[:] = line_or_lines
|
||||
except:
|
||||
# There seem to be a lot of Vim bugs that lead to E351, whose help says that
|
||||
# There seem to be a lot of Vim bugs that lead to E315, whose help says that
|
||||
# this is an internal error. Ignore the error, but write a trace to the log.
|
||||
logging.getLogger( __name__ ).exception(
|
||||
'Internal error while updating buffer %s (%s)', buf.name, buf.number )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue