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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions