diff --git a/plugin/session_buffer.py b/plugin/session_buffer.py index 06de98ef6..cf432e6af 100644 --- a/plugin/session_buffer.py +++ b/plugin/session_buffer.py @@ -677,16 +677,18 @@ def _draw_semantic_tokens_async(self) -> None: # don't update regions if there were additional changes to the buffer in the meantime if self.semantic_tokens.view_change_count != view.change_count(): return + session_name = self.session.config.name for region_key in self.semantic_tokens.active_region_keys.copy(): if region_key not in scope_regions.keys(): self.semantic_tokens.active_region_keys.remove(region_key) for sv in self.session_views: - sv.view.erase_regions(f"lsp_semantic_{region_key}") + sv.view.erase_regions(f"lsp_semantic_{session_name}_{region_key}") for region_key, (scope, regions) in scope_regions.items(): if region_key not in self.semantic_tokens.active_region_keys: self.semantic_tokens.active_region_keys.add(region_key) for sv in self.session_views: - sv.view.add_regions(f"lsp_semantic_{region_key}", regions, scope, flags=SEMANTIC_TOKEN_FLAGS) + sv.view.add_regions( + f"lsp_semantic_{session_name}_{region_key}", regions, scope, flags=SEMANTIC_TOKEN_FLAGS) def _get_semantic_region_key_for_scope(self, scope: str) -> int: if scope not in self._semantic_region_keys: @@ -695,8 +697,9 @@ def _get_semantic_region_key_for_scope(self, scope: str) -> int: return self._semantic_region_keys[scope] def _clear_semantic_token_regions(self, view: sublime.View) -> None: + session_name = self.session.config.name for region_key in self.semantic_tokens.active_region_keys: - view.erase_regions(f"lsp_semantic_{region_key}") + view.erase_regions(f"lsp_semantic_{session_name}_{region_key}") def set_semantic_tokens_pending_refresh(self, needs_refresh: bool = True) -> None: self.semantic_tokens.needs_refresh = needs_refresh diff --git a/plugin/session_view.py b/plugin/session_view.py index 6d4d0c706..94296b6cc 100644 --- a/plugin/session_view.py +++ b/plugin/session_view.py @@ -140,8 +140,9 @@ def _initialize_region_keys(self) -> None: hover_highlight_style = userprefs().hover_highlight_style line_modes = ["m", "s"] self.view.add_regions(self.CODE_ACTIONS_KEY, r) # code actions lightbulb icon should always be on top + session_name = self.session.config.name for key in range(1, 100): - keys.append(f"lsp_semantic_{key}") + keys.append(f"lsp_semantic_{session_name}_{key}") if document_highlight_style in ("background", "fill"): for kind in DOCUMENT_HIGHLIGHT_KIND_NAMES.values(): for mode in line_modes: @@ -151,14 +152,14 @@ def _initialize_region_keys(self) -> None: for severity in range(1, 5): for mode in line_modes: for tag in range(1, 3): - keys.append(f"lsp{self.session.config.name}d{mode}{severity}_tags_{tag}") + keys.append(f"lsp{session_name}d{mode}{severity}_tags_{tag}") keys.append("lsp_document_link") for severity in range(1, 5): for mode in line_modes: - keys.append(f"lsp{self.session.config.name}d{mode}{severity}_icon") + keys.append(f"lsp{session_name}d{mode}{severity}_icon") for severity in range(4, 0, -1): for mode in line_modes: - keys.append(f"lsp{self.session.config.name}d{mode}{severity}_underline") + keys.append(f"lsp{session_name}d{mode}{severity}_underline") if document_highlight_style in ("underline", "stippled"): for kind in DOCUMENT_HIGHLIGHT_KIND_NAMES.values(): for mode in line_modes: