Ejemplo n.º 1
0
    def GetStartCMD(self):
        if self.starting_cmd is None:
            self.starting_cmd = utils.GetEngineConfig(self.engine_name, 'cmd')

        if self.starting_cmd is None or self.starting_cmd == '':
            self.starting_cmd = utils.GetInstallerConfig(self.engine_name)
            logger.debug('installer info:' + str(self.starting_cmd))
            if 'cmd' in self.starting_cmd:
                self.starting_cmd = self.starting_cmd['cmd']
                logger.debug('using installer cmd')
            else:
                self.starting_cmd = utils.GetEngineConfig(
                    self.engine_name, 'cmd2')
                if self.starting_cmd is None or self.starting_cmd == '':
                    raise ValueError("missing cmd.")
                logger.debug('using cmd2')
        else:
            logger.debug('using user setting cmd')
Ejemplo n.º 2
0
Archivo: clangd.py Proyecto: calon/vim
    def __init__(self, engine_name):
        starting_cmd_argv = ''
        if utils.GetEngineConfig(engine_name, 'all_scopes_completion'):
            starting_cmd_argv += '--all-scopes-completion '

        if utils.GetEngineConfig(engine_name, 'background_index'):
            starting_cmd_argv += '--background-index '

        clang_format_fallback_style = utils.GetEngineConfig(
            engine_name, 'clang_format_fallback_style')
        if clang_format_fallback_style != "":
            starting_cmd_argv += '--fallback-style="%s" ' % clang_format_fallback_style

        pch_storage = utils.GetEngineConfig(engine_name, 'pch_storage')
        if pch_storage != "" and pch_storage in ['disk', 'memory']:
            starting_cmd_argv += '--pch-storage="%s" ' % pch_storage

        query_dirver = utils.GetEngineConfig(engine_name, 'query_dirver')
        if query_dirver != "":
            starting_cmd_argv += '--query-driver="%s" ' % query_dirver

        if utils.GetEngineConfig(engine_name, 'use_completion_cache'):
            starting_cmd_argv += '--limit-results=0 '
            lsp.Operate.__init__(self,
                                 engine_name,
                                 starting_cmd_argv=starting_cmd_argv,
                                 languageId='cpp',
                                 use_completion_cache=True,
                                 use_completion_cache_position=True)
        else:
            lsp.Operate.__init__(self,
                                 engine_name,
                                 starting_cmd_argv=starting_cmd_argv,
                                 languageId='cpp')
Ejemplo n.º 3
0
 def _handle_show_msg(self):
     if not utils.GetEngineConfig('GLOBAL_SETTING', 'lsp.showMessage'):
         return
     while 1:
         try:
             response = self._lsp.GetRequestOrNotification(
                 'window/showMessage')
             res = response['params']
             msg = res['message']
             self._show_msg(
                 "{ %s } %s" %
                 (messsage_type.MESSAGE_TYPE[res['type']], msg.split('\n')))
         except Exception as e:
             logger.exception(e)
Ejemplo n.º 4
0
 def __init__(self, engine_name):
     self.engine_name = engine_name
     self.parser = {}
     for item in AVAILABLE_PARSER:
         self.parser[item] = TreeSitter(item)
     self.highlight = utils.GetEngineConfig(self.engine_name, 'highlight')
Ejemplo n.º 5
0
 def _get_format_config(self):
     self.engine_format_setting = utils.GetEngineConfig(
         self.engine_name, 'lsp_formatting')
     if self.engine_format_setting == None:
         self.engine_format_setting = utils.GetEngineConfig(
             'GLOBAL_SETTING', 'lsp_formatting')
Ejemplo n.º 6
0
    def __init__(self,
                 name,
                 starting_cmd=None,
                 starting_cmd_argv=None,
                 refresh_regex=r'[\w+]',
                 rootUri=None,
                 rootPath=None,
                 languageId='',
                 workspaceFolders=None,
                 use_completion_cache=True,
                 use_completion_cache_position=False,
                 initializationOptions=None):

        self.engine_name = name

        self.starting_cmd = starting_cmd
        self.starting_cmd_argv = starting_cmd_argv
        self.GetStartCMD()

        self._lsp = language_server_protocol.LSP(timeout=40)
        self.use_completion_cache = use_completion_cache
        self.use_completion_cache_position = use_completion_cache_position

        self.refresh_regex = refresh_regex

        # in favour of `rootUri`.
        if rootPath is None:
            self.rootPath = rpc.DoCall('ECY#rooter#GetCurrentBufferWorkSpace')
        else:
            self.rootPath = rootPath

        if rootUri is None:
            self.rootUri = self._lsp.PathToUri(self.rootPath)
        else:
            self.rootUri = rootUri

        if workspaceFolders is None:
            self.workspaceFolders = [{
                'uri': self.rootUri,
                'name': 'ECY_' + self.rootPath
            }]
        else:
            self.workspaceFolders = workspaceFolders

        if initializationOptions is None:
            initializationOptions = utils.GetEngineConfig(
                self.engine_name, 'initializationOptions')
            if initializationOptions == '':
                initializationOptions = None
        self.initializationOptions = initializationOptions

        self.languageId = languageId

        self._did_open_list = {}
        self._diagnosis_cache = []
        self.results_list = []
        self.rename_info = {}
        self.rename_id = 0
        self.workspace_cache = []
        self.completion_position_cache = {}
        self.completion_isInCompleted = False
        self.current_seleted_item = {}
        self.code_action_cache = None
        self.workspace_edit_undo = None

        self._start_server()
        self._get_format_config()