def config(self) -> ClientConfig: # Calling setup() also here as this might run before `plugin_loaded`. # Will be a no-op if already ran. # See https://github.com/sublimelsp/LSP/issues/899 server.setup() configuration = self.migrate_and_read_configuration() default_configuration = { 'enabled': True, 'command': ['node', server.binary_path, '--stdio'], } default_configuration.update(configuration) view = sublime.active_window().active_view() if view: view_settings = view.settings() default_configuration \ .setdefault('initializationOptions', {}) \ .setdefault('config', {}) \ .setdefault('vetur', {}) \ .setdefault('format', {}) \ .setdefault('options', {}) \ .update({ 'tabSize': view_settings.get('tab_size', 4), 'useTabs': not view_settings.get('translate_tabs_to_spaces', False) }) return read_client_config(self.name, default_configuration)
def test_can_update_config(self): settings = { "command": ["pyls"], "scopes": ["source.python"], "syntaxes": ["Packages/Python/Python.sublime-syntax"], "languageId": "python" } config = read_client_config("pyls", settings) config = update_client_config(config, {"enabled": True}) self.assertEqual(config.enabled, True)
def test_can_parse_old_client_settings(self): settings = { "command": ["pyls"], "scopes": ["source.python"], "syntaxes": ["Packages/Python/Python.sublime-syntax"], "languageId": "python" } config = read_client_config("pyls", settings) self.assertEqual(len(config.languages), 1) self.assertEqual(config.languages[0].scopes, ["source.python"])
def config(self): config = { "enabled": True, "command": [get_server_exec()], } filename = '{}.sublime-settings'.format(__package__) settings = sublime.load_settings(filename) for key, default in DEAFULT_SETTINGS.items(): config[key] = settings.get(key, default) return read_client_config(self.name, config)
def config(self) -> ClientConfig: assert self.__server configuration = { 'enabled': True, 'command': ['node', self.__server.binary_path] + self.get_binary_arguments(), } configuration.update(self._read_configuration()) self.on_client_configuration_ready(configuration) return read_client_config(self.name, configuration)
def config(self) -> ClientConfig: settings = {} loaded_settings = sublime.load_settings(self.settings_filename) if loaded_settings: for key, default in self.DEFAULT_SETTINGS.items(): settings[key] = loaded_settings.get(key, default) self.configuration.update(settings) executable = self.__server.config(self.configuration.get('command')[0]) self.configuration.update({'command': [executable]}) debug(__package__, 'read config:', self.configuration) return read_client_config(self.name, self.configuration)
def config(self): # load default and user configuration separately to allow merging of settings dicts client_config = sublime.decode_value( sublime.load_resource("Packages/{}/{}".format( __package__, SETTINGS_FILE))) client_config["enabled"] = True if os.path.exists( os.path.join(sublime.packages_path(), "User", SETTINGS_FILE)): user_config = sublime.decode_value( sublime.load_resource( "Packages/User/{}".format(SETTINGS_FILE))) # merge settings dict settings = client_config.get("settings", {}) settings.update(user_config.get("settings", {})) client_config.update(user_config) client_config["settings"] = settings # update starting command if server should be started with sysimage, # because sysimage_path in user settings might have been changed manually if user_config.get("sysimage_path"): env_path = get_active_environment()[1] command = update_starting_command(env_path) client_config["command"] = command return read_client_config(self.name, client_config)