Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions st3/sublime_lib/flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class PointClass(IntFlag, metaclass=ExtensibleConstructorMeta):
@autodoc()
@construct_union
@construct_from_name
class FindOption(IntFlag):
class FindOption(IntFlag, metaclass=ExtensibleConstructorMeta):
"""
An :class:`~enum.IntFlag` for use with several methods of :class:`sublime.View`:

Expand Down Expand Up @@ -132,7 +132,7 @@ class RegionOption(IntFlag, metaclass=ExtensibleConstructorMeta):
@autodoc()
@construct_union
@construct_from_name
class PopupOption(IntFlag):
class PopupOption(IntFlag, metaclass=ExtensibleConstructorMeta):
"""
An :class:`~enum.IntFlag` for use with :meth:`sublime.View.show_popup`.
"""
Expand All @@ -144,7 +144,7 @@ class PopupOption(IntFlag):
@autodoc('LAYOUT')
@construct_union
@construct_from_name
class PhantomLayout(IntFlag):
class PhantomLayout(IntFlag, metaclass=ExtensibleConstructorMeta):
"""
An :class:`~enum.IntFlag` for use with :class:`sublime.Phantom`.
"""
Expand All @@ -156,7 +156,7 @@ class PhantomLayout(IntFlag):
@autodoc()
@construct_union
@construct_from_name
class OpenFileOption(IntFlag):
class OpenFileOption(IntFlag, metaclass=ExtensibleConstructorMeta):
"""
An :class:`~enum.IntFlag` for use with :meth:`sublime.Window.open_file`.
"""
Expand All @@ -167,7 +167,7 @@ class OpenFileOption(IntFlag):
@autodoc()
@construct_union
@construct_from_name
class QuickPanelOption(IntFlag):
class QuickPanelOption(IntFlag, metaclass=ExtensibleConstructorMeta):
"""
An :class:`~enum.IntFlag` for use with :meth:`sublime.Window.show_quick_panel`.
"""
Expand Down
9 changes: 9 additions & 0 deletions tests/test_flags.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import sublime
import sublime_lib.flags as flags

from sublime_lib.vendor.python.enum import IntFlag

from functools import reduce
from unittest import TestCase


Expand All @@ -11,6 +14,12 @@ def _test_enum(self, enum, prefix=''):
self.assertEqual(item, getattr(sublime, prefix + item.name))
self.assertEqual(item, enum(item.name))

if issubclass(enum, IntFlag):
self.assertEqual(
enum(*[item.name for item in enum]),
reduce(lambda a, b: a | b, enum)
)

def test_flags(self):
self._test_enum(flags.DialogResult, 'DIALOG_')
self._test_enum(flags.PointClass, 'CLASS_')
Expand Down