Twm.SortModifiers (Twm v0.1.0)
View SourceSorts modifiers according to following schema:
- Predefined modifiers are sorted alphabetically
- When an arbitrary variant appears, it must be preserved which modifiers are before and after it
Summary
Functions
Creates a context for sorting modifiers based on the provided configuration.
Sorts a list of modifiers using the provided context.
Functions
@spec create_sort_modifiers(Twm.Config.t()) :: Twm.Context.ModifierSortingContext.t()
Creates a context for sorting modifiers based on the provided configuration.
The context holds the configuration data needed for modifier sorting operations.
Parameters
config
- A keyword list containing theorder_sensitive_modifiers
key
Returns
A Context struct containing the sorting configuration.
Examples
iex> config = Twm.Config.new([order_sensitive_modifiers: ["hover", "focus"]])
iex> context = Twm.SortModifiers.create_sort_modifiers(config)
iex> Twm.SortModifiers.sort_modifiers(["d", "hover", "c"], context)
["d", "hover", "c"]
iex> config = Twm.Config.new([order_sensitive_modifiers: ["hover"]])
iex> context = Twm.SortModifiers.create_sort_modifiers(config)
iex> Twm.SortModifiers.sort_modifiers(["[data-test]", "d", "c"], context)
["[data-test]", "c", "d"]
@spec sort_modifiers([String.t()], Twm.Context.ModifierSortingContext.t()) :: [ String.t() ]
Sorts a list of modifiers using the provided context.
Parameters
modifiers
- List of modifier strings to sortcontext
- Context struct containing sorting configuration
Returns
A sorted list of modifiers.
Examples
iex> config = Twm.Config.new([order_sensitive_modifiers: ["hover"]])
iex> context = Twm.SortModifiers.create_sort_modifiers(config)
iex> Twm.SortModifiers.sort_modifiers(["d", "hover", "c"], context)
["d", "hover", "c"]