import sublime
import sublime_plugin


class RegionExampleCommand(sublime_plugin.TextCommand):
    def run(self, edit, example):
        if   example == "1":  region = sublime.Region(0, 10)
        elif example == "2":  region = sublime.Region(10, 20)
        elif example == "3":  region = sublime.Region(5)
        elif example == "4":  region = self.view.word(5)
        elif example == "5":  region = self.view.line(5)
        elif example == "6":  region = self.view.full_line(5)
        elif example == "7":  region = self.view.lines(sublime.Region(10, 20))
        elif example == "8":  region = sublime.Region(self.view.text_point(1, 7))
        elif example == "9":  region = self.view.find_all("example")
        elif example == "10": region = self.view.find_by_selector("comment")
        elif example == "11": region = [s for s in self.view.sel()]

        # The API method we use below expects a list of regions, but not all of
        # the examples above provide one.
        if not isinstance(region, list):
            region = [region]

        self.view.add_regions("test", region, "region.orangish", "bookmark",
            flags=sublime.DRAW_EMPTY | sublime.DRAW_NO_FILL)

        # content = [self.view.substr(r) for r in region]
        # sublime.message_dialog("\n".join(content))