diff --git a/matrix/colors.py b/matrix/colors.py index 2d71fcb..a2ad6ae 100644 --- a/matrix/colors.py +++ b/matrix/colors.py @@ -21,7 +21,7 @@ from __future__ import unicode_literals # pylint: disable=redefined-builtin from builtins import str from collections import namedtuple -from matrix.globals import W +from matrix.globals import W, OPTIONS from matrix.utils import string_strikethrough import textwrap @@ -33,13 +33,9 @@ except ImportError: from html.parser import HTMLParser import html -from html.entities import name2codepoint FormattedString = namedtuple('FormattedString', ['text', 'attributes']) -quote_wrapper = textwrap.TextWrapper( - initial_indent="> ", subsequent_indent="> ") - class Formatted(): @@ -47,6 +43,17 @@ class Formatted(): # type: (List[FormattedString]) -> None self.substrings = substrings + @property + def textwrapper(self): + return textwrap.TextWrapper( + width=67, + initial_indent="{}> ".format( + W.color(W.config_string(OPTIONS.options["quote"])) + ), + subsequent_indent="{}> ".format( + W.color(W.config_string(OPTIONS.options["quote"])) + )) + def is_formatted(self): # type: (Formatted) -> bool for string in self.substrings: @@ -268,7 +275,8 @@ class Formatted(): return string_strikethrough(string) elif name == "quote" and value: - return quote_wrapper.fill(string.replace("\n", "")) + return self.textwrapper.fill( + W.string_remove_color(string.replace("\n", ""), "")) elif name == "fgcolor" and value: return "{color_on}{text}{color_off}".format( diff --git a/matrix/config.py b/matrix/config.py index 7c49e66..3382049 100644 --- a/matrix/config.py +++ b/matrix/config.py @@ -138,6 +138,11 @@ def matrix_config_init(config_file): ("Use a separate buffer for debug logs.")), ] + color_options = [ + Option("quote", "color", "", 0, 0, "lightgreen", + ("Color for matrix style blockquotes")) + ] + def add_global_options(section, options): for option in options: OPTIONS.options[option.name] = W.config_new_option( @@ -149,7 +154,7 @@ def matrix_config_init(config_file): section = W.config_new_section(config_file, "color", 0, 0, "", "", "", "", "", "", "", "", "", "") - # TODO color options + add_global_options(section, color_options) section = W.config_new_section(config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", "")