Simplify by using the option definition as a title

This commit is contained in:
Kovid Goyal 2018-06-04 00:11:25 +05:30
parent 1c2c98c1a4
commit 2ae3157d49
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 23 additions and 30 deletions

View File

@ -322,7 +322,7 @@ def render_conf(ref_prefix, all_options):
current_group = None current_group = None
all_options = list(all_options) all_options = list(all_options)
for i, opt in enumerate(all_options): for i, opt in enumerate(all_options):
if not opt.short_text: if not opt.long_text:
continue continue
if opt.group is not current_group: if opt.group is not current_group:
if current_group and current_group.end_text: if current_group and current_group.end_text:
@ -333,9 +333,6 @@ def render_conf(ref_prefix, all_options):
for mo in mopts: for mo in mopts:
a('.. _{}:'.format(conf_label(ref_prefix, mo.name))) a('.. _{}:'.format(conf_label(ref_prefix, mo.name)))
a('') a('')
a(opt.short_text)
a('_' * (len(opt.short_text) + 20))
a('')
a('.. code-block:: ini') a('.. code-block:: ini')
a('') a('')
sz = max(len(x.name) for x in mopts) sz = max(len(x.name) for x in mopts)
@ -343,7 +340,7 @@ def render_conf(ref_prefix, all_options):
a((' {:%ds} {}' % sz).format(mo.name, mo.defval_as_string)) a((' {:%ds} {}' % sz).format(mo.name, mo.defval_as_string))
a('') a('')
if opt.long_text: if opt.long_text:
a(opt.long_text) a(opt.long_text, ' ')
a('') a('')
return '\n'.join(ans) return '\n'.join(ans)

View File

@ -23,10 +23,10 @@ class Group:
class Option: class Option:
__slots__ = 'name', 'group', 'short_text', 'long_text', 'option_type', 'defval_as_string', 'defval', 'add_to_default' __slots__ = 'name', 'group', 'long_text', 'option_type', 'defval_as_string', 'defval', 'add_to_default'
def __init__(self, name, group, defval, option_type, short_text, long_text, add_to_default): def __init__(self, name, group, defval, option_type, long_text, add_to_default):
self.name, self.group, self.short_text = name, group, short_text self.name, self.group = name, group
self.long_text, self.option_type = long_text.strip(), option_type self.long_text, self.option_type = long_text.strip(), option_type
self.defval_as_string, self.defval = defval, option_type(defval) self.defval_as_string, self.defval = defval, option_type(defval)
self.add_to_default = add_to_default self.add_to_default = add_to_default
@ -37,7 +37,6 @@ def option(
group, group,
name, name,
defval, defval,
short_text='',
long_text='', long_text='',
option_type=to_string, option_type=to_string,
add_to_default=True add_to_default=True
@ -60,7 +59,7 @@ def option(
key = name key = name
if is_multiple: if is_multiple:
key = name + ' ' + defval.partition(' ')[0] key = name + ' ' + defval.partition(' ')[0]
ans = Option(name, group[0], defval, option_type, short_text, long_text, add_to_default) ans = Option(name, group[0], defval, option_type, long_text, add_to_default)
all_options[key] = ans all_options[key] = ans
return ans return ans
@ -79,7 +78,7 @@ def merged_opts(all_options, opt, i):
yield opt yield opt
for k in range(i + 1, len(all_options)): for k in range(i + 1, len(all_options)):
q = all_options[k] q = all_options[k]
if not q.short_text: if not q.long_text:
yield q yield q
else: else:
break break
@ -109,7 +108,7 @@ def as_conf_file(all_options):
current_group = None current_group = None
all_options = list(all_options) all_options = list(all_options)
for i, opt in enumerate(all_options): for i, opt in enumerate(all_options):
if not opt.short_text: if not opt.long_text:
continue continue
if opt.group is not current_group: if opt.group is not current_group:
if current_group: if current_group:
@ -120,13 +119,13 @@ def as_conf_file(all_options):
current_group = opt.group current_group = opt.group
render_group(a, current_group) render_group(a, current_group)
mopts = list(merged_opts(all_options, opt, i)) mopts = list(merged_opts(all_options, opt, i))
a(render_block(opt.long_text or opt.short_text))
a('')
sz = max(len(x.name) for x in mopts) sz = max(len(x.name) for x in mopts)
for mo in mopts: for mo in mopts:
prefix = '' if mo.add_to_default else '# ' prefix = '' if mo.add_to_default else '# '
a(('{}{:%ds} {}' % sz).format(prefix, mo.name, mo.defval_as_string)) a(('{}{:%ds} {}' % sz).format(prefix, mo.name, mo.defval_as_string))
a('') a('')
a(render_block(opt.long_text))
a('')
if current_group: if current_group:
if current_group.end_text: if current_group.end_text:
a(''), a(current_group.end_text) a(''), a(current_group.end_text)

View File

@ -112,7 +112,6 @@ g('fonts') # {{{
o( o(
'font_family', 'font_family',
'monospace', 'monospace',
_('Font family'),
long_text=_(''' long_text=_('''
You can specify different fonts for the bold/italic/bold-italic variants. You can specify different fonts for the bold/italic/bold-italic variants.
By default they are derived automatically, by the OSes font system. Setting By default they are derived automatically, by the OSes font system. Setting
@ -129,9 +128,9 @@ o('bold_font', 'auto')
o('italic_font', 'auto') o('italic_font', 'auto')
o('bold_italic_font', 'auto') o('bold_italic_font', 'auto')
o('font_size', 11.0, _('Font size (in pts)'), option_type=to_font_size) o('font_size', 11.0, long_text=_('Font size (in pts)'), option_type=to_font_size)
o('adjust_line_height', 0, _('Adjust cell dimensions'), option_type=adjust_line_height, long_text=_(''' o('adjust_line_height', 0, option_type=adjust_line_height, long_text=_('''
Change the size of each character cell kitty renders. You can use either numbers, Change the size of each character cell kitty renders. You can use either numbers,
which are interpreted as pixels or percentages (number followed by %), which which are interpreted as pixels or percentages (number followed by %), which
are interpreted as percentages of the unmodified values. You can use negative are interpreted as percentages of the unmodified values. You can use negative
@ -143,7 +142,6 @@ o('adjust_column_width', 0, option_type=adjust_line_height)
o( o(
'+symbol_map', '+symbol_map',
'U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols', 'U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols',
_('Font character mapping'),
add_to_default=False, add_to_default=False,
long_text=_(''' long_text=_('''
Map the specified unicode codepoints to a particular font. Useful if you need Map the specified unicode codepoints to a particular font. Useful if you need
@ -160,7 +158,6 @@ Syntax is::
o( o(
'box_drawing_scale', 'box_drawing_scale',
'0.001, 1, 1.5, 2', '0.001, 1, 1.5, 2',
_('Box drawing line thickness'),
option_type=box_drawing_scale, option_type=box_drawing_scale,
long_text=_(''' long_text=_('''
Change the sizes of the lines used for the box drawing unicode characters Change the sizes of the lines used for the box drawing unicode characters
@ -173,10 +170,10 @@ and very thick lines.
g('cursor') # {{{ g('cursor') # {{{
o('cursor', '#cccccc', _('Cursor color'), option_type=to_color) o('cursor', '#cccccc', _('Default cursor color'), option_type=to_color)
o('cursor_shape', 'block', _('Cursor shape'), option_type=to_cursor_shape, long_text=_( o('cursor_shape', 'block', option_type=to_cursor_shape, long_text=_(
'The cursor shape can be one of (block, beam, underline)')) 'The cursor shape can be one of (block, beam, underline)'))
o('cursor_blink_interval', 0.5, _('Cursor blink'), option_type=positive_float, long_text=_(''' o('cursor_blink_interval', 0.5, option_type=positive_float, long_text=_('''
The interval (in seconds) at which to blink the cursor. Set to zero to disable The interval (in seconds) at which to blink the cursor. Set to zero to disable
blinking. Note that numbers smaller than :conf:`repaint_delay` will be limited blinking. Note that numbers smaller than :conf:`repaint_delay` will be limited
to :conf:`repaint_delay`. Stop blinking cursor after the specified number of to :conf:`repaint_delay`. Stop blinking cursor after the specified number of
@ -188,38 +185,38 @@ o('cursor_stop_blinking_after', 15.0, option_type=positive_float)
g('scrollback') # {{{ g('scrollback') # {{{
o('scrollback_lines', 2000, _('Scrollback size'), option_type=positive_int, long_text=_(''' o('scrollback_lines', 2000, option_type=positive_int, long_text=_('''
Number of lines of history to keep in memory for scrolling back. Memory is allocated Number of lines of history to keep in memory for scrolling back. Memory is allocated
on demand.''')) on demand.'''))
o('scrollback_pager', 'less +G -R', _('Scrollback pager'), option_type=to_cmdline, long_text=_(''' o('scrollback_pager', 'less +G -R', option_type=to_cmdline, long_text=_('''
Program with which to view scrollback in a new window. The scrollback buffer is Program with which to view scrollback in a new window. The scrollback buffer is
passed as STDIN to this program. If you change it, make sure the program you passed as STDIN to this program. If you change it, make sure the program you
use can handle ANSI escape sequences for colors and text formatting.''')) use can handle ANSI escape sequences for colors and text formatting.'''))
o('wheel_scroll_multiplier', 5.0, _('Wheel/touchpad scrolling'), long_text=_(''' o('wheel_scroll_multiplier', 5.0, long_text=_('''
Wheel scroll multiplier (modify the amount scrolled by the mouse wheel). Use Modify the amount scrolled by the mouse wheel or touchpad. Use
negative numbers to change scroll direction.''')) negative numbers to change scroll direction.'''))
# }}} # }}}
g('mouse') # {{{ g('mouse') # {{{
o('url_color', '#0087BD', _('URL hover highlight'), option_type=to_color, long_text=_(''' o('url_color', '#0087BD', option_type=to_color, long_text=_('''
The color and style for highlighting URLs on mouse-over. The color and style for highlighting URLs on mouse-over.
:code:`url_style` can be one of: none, single, double, curly''')) :code:`url_style` can be one of: none, single, double, curly'''))
o('url_style', 'curly', option_type=url_style) o('url_style', 'curly', option_type=url_style)
o('open_url_modifiers', 'kitty_mod', _('Click URL modifiers'), option_type=to_modifiers, long_text=_(''' o('open_url_modifiers', 'kitty_mod', option_type=to_modifiers, long_text=_('''
The modifier keys to press when clicking with the The modifier keys to press when clicking with the
mouse on URLs to open the URL''')) mouse on URLs to open the URL'''))
o('open_url_with', 'default', _('Open URL with'), option_type=to_cmdline, long_text=_(''' o('open_url_with', 'default', option_type=to_cmdline, long_text=_('''
The program with which to open URLs that are clicked on. The program with which to open URLs that are clicked on.
The special value :code:`default` means to use the The special value :code:`default` means to use the
operating system's default URL handler.''')) operating system's default URL handler.'''))
o('copy_on_select', False, _('Copy on select'), long_text=_(''' o('copy_on_select', False, long_text=_('''
Copy to clipboard on select. With this enabled, simply selecting text with Copy to clipboard on select. With this enabled, simply selecting text with
the mouse will cause the text to be copied to clipboard. Useful on platforms the mouse will cause the text to be copied to clipboard. Useful on platforms
such as macOS/Wayland that do not have the concept of primary selections. Note such as macOS/Wayland that do not have the concept of primary selections. Note