howl.ui.HelpContext
local help get_text = -> help\get_buffer!.text before_each -> help = HelpContext!
puts all sections together before all keys
help\add_keys ctrl_a: 'line 1' help\add_section text: 'section 1' help\add_keys ctrl_b: 'line 2' help\add_section text: 'section 2' assert.same 'section 1\n\nsection 2\n\nKeys\nctrl_a line 1\nctrl_b line 2\n', get_text!
(add_section)
returns text added via add_section
help\add_section heading: 'hello', text: 'world' assert.same 'hello\n\nworld\n', get_text!
parses text as markup
help\add_section heading: 'hello', text: '<string>world</>' assert.same 'hello\n\nworld\n', get_text!
concatenates multiple sections add_section
help\add_section heading: 'title', text: 'line 1' help\add_section text: 'line 2' assert.same 'title\n\nline 1\n\nline 2\n', get_text!
(add_keys)
returns a table of keys added via add_keys
help\add_keys ctrl_a: 'line 1' help\add_keys f2: 'line 2' assert.same 'Keys\nctrl_a line 1\nf2 line 2\n', get_text!
preserves order in which keys were added
help\add_keys f3: 'line 1' help\add_keys f1: 'line 2' help\add_keys f2: 'line 3' help\add_keys f5: 'line 4' assert.same 'Keys\nf3 line 1\nf1 line 2\nf2 line 3\nf5 line 4\n', get_text!
maps command names to binding keys
howl.bindings.push ctrl_t: 'test-command' help\add_keys ['test-command']: 'line 1' assert.same 'Keys\nctrl_t line 1\n', get_text!
also accepts list of tables as keys
help\add_keys { {ctrl_b: 'line 1'} {ctrl_c: 'line 2'} {ctrl_a: 'line 3'} } assert.same 'Keys\nctrl_b line 1\nctrl_c line 2\nctrl_a line 3\n', get_text!
(merge)
merges keys and sections from other contexts
help\add_keys ctrl_a: 'line 1' help\add_section text: 'section 1' help2 = HelpContext! help2\add_keys ctrl_b: 'line 2' help2\add_section text: 'section 2' help\merge help2 assert.same 'section 1\n\nsection 2\n\nKeys\nctrl_a line 1\nctrl_b line 2\n', get_text!