I often use the
ctrl+alt+enter combination to quickly open a file in a side-by-side / SEMI_TRANSIENT view. E.g. I implicitly do this when using LSP, to quickly see an object definition. Because the horizontal space in the SEMI_TRANSIENT view is limited, I am using this code to remove UI elements from it and save space (I even decrease the font size):
class ResizeView(sublime_plugin.ViewEventListener): def on_load_async(self): view = self.view if view.sheet().is_semi_transient(): view.settings().set("line_numbers", False) view.settings().set("gutter", False) view.settings().set("draw_centered", True) view.settings().set("wrap_width", 80) view.settings().set("word_wrap", True) view.settings().set("scroll_past_end", True) view.settings().set("font_size", view.settings().get("font_size") - 1)
This works fine as long as the file is not open already. If the file is already open in a tab,
on_load_async event is not triggered. The only handler which intercepts the new SEMI_TRANSIENT view in that case seems to be
on_activated(), but at that point the view is no longer reported as semi transient (
is_semi_transient() == False).
Any suggestion on how I could intercept all SEMI_TRANSIENT view events? I tried
on_clone() and also made
False with no luck.