Пример #1
0
def read_dict_setting(settings_obj: sublime.Settings, key: str,
                      default: dict) -> dict:
    val = settings_obj.get(key)
    if isinstance(val, dict):
        return val
    else:
        return default
Пример #2
0
def read_str_setting(settings_obj: sublime.Settings, key: str,
                     default: str) -> str:
    val = settings_obj.get(key)
    if isinstance(val, str):
        return val
    else:
        return default
Пример #3
0
def read_array_setting(settings_obj: sublime.Settings, key: str,
                       default: list) -> list:
    val = settings_obj.get(key)
    if isinstance(val, list):
        return val
    else:
        return default
Пример #4
0
def read_int_setting(settings_obj: sublime.Settings, key: str,
                     default: int) -> int:
    val = settings_obj.get(key)
    if isinstance(val, int):
        return val
    else:
        return default
Пример #5
0
def read_bool_setting(settings_obj: sublime.Settings, key: str,
                      default: bool) -> bool:
    val = settings_obj.get(key)
    if isinstance(val, bool):
        return val
    else:
        return default
Пример #6
0
def get_java_path(settings: sublime.Settings) -> str:
    java_home = settings.get("java_home")
    if isinstance(java_home, str) and java_home:
        return os.path.join(java_home, "bin", "java")
    java_home = os.environ.get('JAVA_HOME')
    if java_home:
        return os.path.join(java_home, "bin", "java")
    return "java"
Пример #7
0
 def from_sublime_settings(cls, name: str, s: sublime.Settings,
                           file: str) -> "ClientConfig":
     base = sublime.decode_value(sublime.load_resource(file))
     settings = DottedDict(base.get("settings",
                                    {}))  # defined by the plugin author
     settings.update(read_dict_setting(s, "settings",
                                       {}))  # overrides from the user
     init_options = DottedDict(base.get("initializationOptions", {}))
     init_options.update(read_dict_setting(s, "initializationOptions", {}))
     disabled_capabilities = s.get("disabled_capabilities")
     file_watcher = cast(FileWatcherConfig,
                         read_dict_setting(s, "file_watcher", {}))
     if isinstance(disabled_capabilities, dict):
         disabled_capabilities = DottedDict(disabled_capabilities)
     else:
         disabled_capabilities = DottedDict()
     return ClientConfig(
         name=name,
         selector=_read_selector(s),
         priority_selector=_read_priority_selector(s),
         schemes=s.get("schemes"),
         command=read_list_setting(s, "command", []),
         tcp_port=s.get("tcp_port"),
         auto_complete_selector=s.get("auto_complete_selector"),
         # Default to True, because an LSP plugin is enabled iff it is enabled as a Sublime package.
         enabled=bool(s.get("enabled", True)),
         init_options=init_options,
         settings=settings,
         env=read_dict_setting(s, "env", {}),
         experimental_capabilities=s.get("experimental_capabilities"),
         disabled_capabilities=disabled_capabilities,
         file_watcher=file_watcher,
         path_maps=PathMap.parse(s.get("path_maps")))
Пример #8
0
 def __init__(self, view):
     self.view = view
     self.settings = Settings(view)
     # self.auto_expand_line = self.settings.get("auto_expand_line", True)
     self.auto_expand_line = True
     # self.auto_advance = self.settings.get("auto_advance", True)
     self.auto_advance = True
     # self.auto_advance_non_empty = self.settings.get("auto_advance_non_empty", False)
     self.auto_advance_non_empty = False
Пример #9
0
def read_auto_show_diagnostics_panel_setting(settings_obj: sublime.Settings,
                                             key: str, default: str) -> str:
    val = settings_obj.get(key)
    if isinstance(val, bool):
        return 'always' if val else 'never'
    if isinstance(val, str):
        return val
    else:
        return default
Пример #10
0
def formatting_options(settings: sublime.Settings) -> Dict[str, Any]:
    # Build 4085 allows "trim_trailing_white_space_on_save" to be a string so we have to account for that in a
    # backwards-compatible way.
    trim_trailing_white_space = settings.get(
        "trim_trailing_white_space_on_save") not in (False, None, "none")
    return {
        # Size of a tab in spaces.
        "tabSize": settings.get("tab_size", 4),
        # Prefer spaces over tabs.
        "insertSpaces": settings.get("translate_tabs_to_spaces", False),
        # Trim trailing whitespace on a line. (since 3.15)
        "trimTrailingWhitespace": trim_trailing_white_space,
        # Insert a newline character at the end of the file if one does not exist. (since 3.15)
        "insertFinalNewline": settings.get("ensure_newline_at_eof_on_save",
                                           False),
        # Trim all newlines after the final newline at the end of the file. (sine 3.15)
        "trimFinalNewlines": settings.get("ensure_newline_at_eof_on_save",
                                          False)
    }
Пример #11
0
 def _clear_auto_complete_triggers(self, settings: sublime.Settings) -> None:
     '''Remove all of our modifications to the view's "auto_complete_triggers"'''
     triggers = settings.get(self.AC_TRIGGERS_KEY)
     if isinstance(triggers, list):
         triggers = [t for t in triggers if self.session.config.name != t.get("server", "")]
         settings.set(self.AC_TRIGGERS_KEY, triggers)
 def is_applicable(cls, settings: sublime.Settings) -> bool:
     return settings.get('translate_tabs_to_spaces', False)
Пример #13
0
    def update(self, s: sublime.Settings) -> None:
        def r(name: str, default: Union[bool, int, str, list, dict]) -> None:
            val = s.get(name)
            setattr(self, name,
                    val if isinstance(val, default.__class__) else default)

        r("diagnostics_additional_delay_auto_complete_ms", 0)
        r("diagnostics_delay_ms", 0)
        r("diagnostics_gutter_marker", "dot")
        r("diagnostics_panel_include_severity_level", 4)
        r("disabled_capabilities", [])
        r("document_highlight_style", "underline")
        r("log_debug", False)
        r("log_max_size", 8 * 1024)
        r("lsp_code_actions_on_save", {})
        r("lsp_format_on_save", False)
        r("on_save_task_timeout_ms", 2000)
        r("only_show_lsp_completions", False)
        r("popup_max_characters_height", 1000)
        r("popup_max_characters_width", 120)
        r("show_code_actions", "annotation")
        r("show_code_lens", "annotation")
        r("show_code_actions_in_hover", True)
        r("register_trigger_chars", False)
        r("show_diagnostics_count_in_view_status", False)
        r("show_diagnostics_in_view_status", True)
        r("show_multiline_diagnostics_highlights", True)
        r("show_diagnostics_panel_on_save", 2)
        r("show_diagnostics_severity_level", 2)
        r("show_references_in_quick_panel", False)
        r("show_symbol_action_links", False)
        r("show_view_status", True)

        # Backwards-compatible with the bool setting
        log_server = s.get("log_server")
        if isinstance(log_server, bool):
            self.log_server = ["panel"] if log_server else []
        elif isinstance(log_server, list):
            self.log_server = log_server
        else:
            self.log_server = []

        # Backwards-compatible with the bool setting
        auto_show_diagnostics_panel = s.get("auto_show_diagnostics_panel")
        if isinstance(auto_show_diagnostics_panel, bool):
            if not auto_show_diagnostics_panel:
                self.show_diagnostics_panel_on_save = 0
        elif isinstance(auto_show_diagnostics_panel, str):
            if auto_show_diagnostics_panel == "never":
                self.show_diagnostics_panel_on_save = 0

        # Backwards-compatible with "only_show_lsp_completions"
        only_show_lsp_completions = s.get("only_show_lsp_completions")
        if isinstance(only_show_lsp_completions, bool):
            self.inhibit_snippet_completions = only_show_lsp_completions
            self.inhibit_word_completions = only_show_lsp_completions
        else:
            r("inhibit_snippet_completions", False)
            r("inhibit_word_completions", False)

        # correctness checking will happen inside diagnostics_highlight_style_flags method
        self.diagnostics_highlight_style = s.get(
            "diagnostics_highlight_style")  # type: ignore

        # Backwards-compatible with "show_diagnostics_highlights"
        if s.get("show_diagnostics_highlights") is False:
            self.diagnostics_highlight_style = ""

        # Backwards-compatible with "code_action_on_save_timeout_ms"
        code_action_on_save_timeout_ms = s.get(
            "code_action_on_save_timeout_ms")
        if isinstance(code_action_on_save_timeout_ms, int):
            self.on_save_task_timeout_ms = code_action_on_save_timeout_ms

        set_debug_logging(self.log_debug)
Пример #14
0
def read_list_setting(settings_obj: sublime.Settings, key: str,
                      default: list) -> list:
    val = settings_obj.get(key)
    return val if isinstance(val, list) else default
Пример #15
0
 def __init__(self, settings: sublime.Settings,
              on_change: Callable[[], None]) -> None:
     self._settings = settings
     settings.add_on_change("LSP", on_change)
Пример #16
0
def get_default_line_ending(raw: Settings) -> str:
    from sublime import platform
    ending = raw.get("default_line_ending").lower()
    is_windows = ending == "system" and platform() == "windows"
    is_windows = ending == "windows" or is_windows
    return "crlf" if is_windows else "lf"
Пример #17
0
 def on_settings_read(cls, settings: sublime.Settings):
     cls._user_schemas = settings.get('userSchemas', [])
     # Nothing has changed so don't force saving.
     return False
Пример #18
0
 def on_settings_read_internal(cls, settings: sublime.Settings) -> None:
     languages = settings.get('languages', None)  # type: Optional[List[LanguagesDict]]
     if languages:
         settings.set('languages', cls._upgrade_languages_list(languages))
Пример #19
0
def formatting_options(settings: sublime.Settings) -> Dict[str, Any]:
    return {
        "tabSize": settings.get("tab_size", 4),
        "insertSpaces": settings.get("translate_tabs_to_spaces", False)
    }
Пример #20
0
def read_bool_setting(settings_obj: sublime.Settings, key: str, default: bool) -> bool:
    val = settings_obj.get(key)
    if isinstance(val, bool):
        return val
    else:
        return default
Пример #21
0
def read_int_setting(settings_obj: sublime.Settings, key: str, default: int) -> int:
    val = settings_obj.get(key)
    if isinstance(val, int):
        return val
    else:
        return default
Пример #22
0
def read_str_setting(settings_obj: sublime.Settings, key: str, default: str) -> str:
    val = settings_obj.get(key)
    if isinstance(val, str):
        return val
    else:
        return default
Пример #23
0
def read_dict_setting(settings_obj: sublime.Settings, key: str, default: dict) -> dict:
    val = settings_obj.get(key)
    if isinstance(val, dict):
        return val
    else:
        return default