only set color_finished=True when is_background, otherwise next char sets it
This commit is contained in:
parent
d06efdabed
commit
5d2dd9178f
1 changed files with 12 additions and 13 deletions
|
@ -69,8 +69,8 @@ FORMAT_STRIP = [
|
||||||
]
|
]
|
||||||
def _format_tokens(s: str) -> typing.List[str]:
|
def _format_tokens(s: str) -> typing.List[str]:
|
||||||
is_color = False
|
is_color = False
|
||||||
foreground = ""
|
foreground = []
|
||||||
background = ""
|
background = []
|
||||||
is_background = False
|
is_background = False
|
||||||
matches = [] # type: typing.List[str]
|
matches = [] # type: typing.List[str]
|
||||||
|
|
||||||
|
@ -79,25 +79,24 @@ def _format_tokens(s: str) -> typing.List[str]:
|
||||||
if is_color:
|
if is_color:
|
||||||
current_color = background if is_background else foreground
|
current_color = background if is_background else foreground
|
||||||
color_finished = True
|
color_finished = True
|
||||||
if char.isdigit() and len(current_color) < 2:
|
|
||||||
if is_background:
|
if char == "," and not is_background:
|
||||||
background += char
|
|
||||||
else:
|
|
||||||
foreground += char
|
|
||||||
color_finished = (len(current_color)+1) == 2
|
|
||||||
elif char == "," and not is_background:
|
|
||||||
is_background = True
|
is_background = True
|
||||||
color_finished = False
|
color_finished = False
|
||||||
|
|
||||||
|
elif char.isdigit() and len(current_color) < 2:
|
||||||
|
current_color.append(char)
|
||||||
|
color_finished = len(current_color) == 2 and is_background
|
||||||
|
|
||||||
if color_finished or last_char:
|
if color_finished or last_char:
|
||||||
color = foreground
|
color = "".join(foreground)
|
||||||
if background:
|
if background:
|
||||||
color += ","+background
|
color += "".join([","]+background)
|
||||||
|
|
||||||
matches.append("\x03%s" % color)
|
matches.append("\x03%s" % color)
|
||||||
is_color = False
|
is_color = False
|
||||||
foreground = ""
|
foreground = []
|
||||||
background = ""
|
background = []
|
||||||
is_background = False
|
is_background = False
|
||||||
|
|
||||||
if char == consts.COLOR:
|
if char == consts.COLOR:
|
||||||
|
|
Loading…
Reference in a new issue