tools: Enable color from gcc.

This commit is contained in:
Andrew Hamilton 2019-07-21 21:51:38 +10:00
parent cfa591976c
commit d1867f61ab
5 changed files with 19 additions and 7 deletions

View file

@ -166,6 +166,10 @@ class TermStr(collections.UserString):
is_bold, is_italic, is_underlined = False, False, False is_bold, is_italic, is_underlined = False, False, False
result_parts = [parts[0]] result_parts = [parts[0]]
for part in parts[1:]: for part in parts[1:]:
if part.startswith("[K"):
end_index = part.index("K")
codes = []
else:
end_index = part.index("m") end_index = part.index("m")
codes = part[1:end_index].split(";") codes = part[1:end_index].split(";")
previous_code = None previous_code = None
@ -173,11 +177,11 @@ class TermStr(collections.UserString):
if code in ["", "0"]: # Normal if code in ["", "0"]: # Normal
is_bold, is_italic, is_underlined = False, False, False is_bold, is_italic, is_underlined = False, False, False
fg_color, bg_color = None, None fg_color, bg_color = None, None
elif code == "1": # bold elif code in ["01", "1"]: # bold
is_bold = True is_bold = True
elif code == "3": # italic elif code in ["03", "3"]: # italic
is_italic = True is_italic = True
elif code == "4": # underline elif code in ["04", "4"]: # underline
is_underlined = True is_underlined = True
elif len(code) == 2 and code.startswith("3"): # 8 fg color elif len(code) == 2 and code.startswith("3"): # 8 fg color
fg_color = int(code[1]) fg_color = int(code[1])

View file

@ -202,12 +202,14 @@ tools_for_extensions = [
[c_syntax_gcc] [c_syntax_gcc]
dependencies = ["gcc", "g++"] dependencies = ["gcc", "g++"]
url = "https://gcc.gnu.org/" url = "https://gcc.gnu.org/"
command = "gcc -fsyntax-only" command = "gcc -fsyntax-only -fdiagnostics-color=always"
has_color = true
[cpp_syntax_gcc] [cpp_syntax_gcc]
dependencies = ["gcc", "g++"] dependencies = ["gcc", "g++"]
url = "https://gcc.gnu.org/" url = "https://gcc.gnu.org/"
command = "gcc -fsyntax-only" command = "gcc -fsyntax-only -fdiagnostics-color=always"
has_color = true
[php7_syntax] [php7_syntax]
dependencies = ["php7.2-cli"] dependencies = ["php7.2-cli"]

View file

@ -0,0 +1 @@


View file

@ -151,6 +151,10 @@ class TermStrTests(unittest.TestCase):
termstr.TermStr("bar")) termstr.TermStr("bar"))
self.assertEqual(TermStr.from_term(eris.terminal.ESC + "[1;3mfoo"), self.assertEqual(TermStr.from_term(eris.terminal.ESC + "[1;3mfoo"),
termstr.TermStr("foo").bold().italic()) termstr.TermStr("foo").bold().italic())
self.assertEqual(TermStr.from_term(eris.terminal.ESC + "[01mfoo"),
termstr.TermStr("foo").bold())
self.assertEqual(TermStr.from_term(eris.terminal.ESC + "[Kfoo"),
termstr.TermStr("foo"))
if __name__ == "__main__": if __name__ == "__main__":