diff --git a/LSP.sublime-settings b/LSP.sublime-settings index 1489931cf..0bf0e6902 100644 --- a/LSP.sublime-settings +++ b/LSP.sublime-settings @@ -136,6 +136,9 @@ // The maximum number of characters (approximately) before a scrollbar appears. "popup_max_characters_height": 1000, + // Show diagnostics in hover popup if available + "show_diagnostics_in_hover": true, + // Show code actions in hover popup if available "show_code_actions_in_hover": true, diff --git a/plugin/core/types.py b/plugin/core/types.py index 901d3c565..46d7efa7b 100644 --- a/plugin/core/types.py +++ b/plugin/core/types.py @@ -227,6 +227,7 @@ class Settings: show_code_actions = cast(str, None) show_code_lens = cast(str, None) show_inlay_hints = cast(bool, None) + show_diagnostics_in_hover = cast(bool, None) show_code_actions_in_hover = cast(bool, None) show_diagnostics_annotations_severity_level = cast(int, None) show_diagnostics_count_in_view_status = cast(bool, None) @@ -271,6 +272,7 @@ def r(name: str, default: bool | int | str | list | dict) -> None: r("show_code_actions", "annotation") r("show_code_lens", "annotation") r("show_inlay_hints", False) + r("show_diagnostics_in_hover", True) r("show_code_actions_in_hover", True) r("show_diagnostics_annotations_severity_level", 0) r("show_diagnostics_count_in_view_status", False) diff --git a/plugin/hover.py b/plugin/hover.py index b3d9ddae4..260347192 100644 --- a/plugin/hover.py +++ b/plugin/hover.py @@ -278,10 +278,11 @@ def show_hover(self, listener: AbstractViewListener, point: int, only_diagnostic def _show_hover(self, listener: AbstractViewListener, point: int, only_diagnostics: bool) -> None: hover_content = self.hover_content() - contents = self.diagnostics_content() + hover_content + code_actions_content(self._actions_by_config) + prefs = userprefs() + diagnostics_content = self.diagnostics_content() if only_diagnostics or prefs.show_diagnostics_in_hover else "" + contents = diagnostics_content + hover_content + code_actions_content(self._actions_by_config) link_content, link_range = self.link_content_and_range() only_link_content = not bool(contents) and link_range is not None - prefs = userprefs() if prefs.show_symbol_action_links and contents and not only_diagnostics and hover_content: symbol_actions_content = self.symbol_actions_content(listener, point) if link_content: diff --git a/sublime-package.json b/sublime-package.json index 81c687770..023541fe8 100644 --- a/sublime-package.json +++ b/sublime-package.json @@ -621,6 +621,11 @@ "default": "annotation", "markdownDescription": "Where to show `\"code lens\"`." }, + "show_diagnostics_in_hover": { + "type": "boolean", + "default": true, + "markdownDescription": "Show diagnostics in hover popup if available." + }, "show_code_actions_in_hover": { "type": "boolean", "default": true,