Skip to content

A "maintainer" or "owner" class for view.add_regions #141

@rwols

Description

@rwols

Decorated regions in a view can be regarded as a resource. Resources must be cleaned up when they are no longer needed.

It is too easy to forget this in a large plugin (or even a small plugin). For instance, one tends to forget to clean up regions when a plugin gets disabled.

It'd be nice to have a class that maintains this resource. Something like this (just an idea):

class AddRegionsMaintainer:

    def __init__(self, view: sublime.View, key: str, *args: Any, **kwargs: Any) -> None:
        self._view = view
        self._key = key
        self(*args, **kwargs)

    def __call__(self, *args: Any, **kwargs: Any) -> None:
        self._view.add_regions(self._key, *args, **kwargs)

    def __del__(self) -> None:
        self._view.erase_regions(self._key)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions