howl.ui.style

local buffer

before_each ->
    buffer = Buffer {}

styles can be accessed using direct indexing

t = styles: default: color: '#998877'
style.set_for_theme t
assert.equal style.default.color, t.styles.default.color

.at_pos(buffer, pos) returns name and style definition at pos

style.define 'stylish', color: '#101010'
buffer = ActionBuffer!
buffer\insert 'hƏllo', 1, 'keyword'
buffer\insert 'Bačon', 6, 'stylish'

name = style.at_pos(buffer, 5)
assert.equal name, 'keyword'

.define(name, definition)

allows defining custom styles

style.define 'custom', color: '#334455'
assert.equal style.custom.color, '#334455'

allows aliasing styles using a string as <definition>

style.define 'target', color: '#beefed'
style.define 'alias', 'target'
assert.equal '#beefed', style.alias.color

define_default(name, definition)

defines the style only if it is not already defined

style.define_default 'preset', color: '#334455'
assert.equal style.preset.color, '#334455'

style.define_default 'preset', color: '#667788'
assert.equal style.preset.color, '#334455'