From c4cd982d5886df6a04eb1a83dedf272ab550f4db Mon Sep 17 00:00:00 2001 From: Mikhail Suendukov <43934531+JiglioNero@users.noreply.github.com> Date: Tue, 8 Sep 2020 18:37:24 +0300 Subject: [PATCH 1/6] implement colorizing for output channels --- package.json | 18 +- .../log/syntaxes/rn-output.tmGrammar.json | 284 ++++++++++++++++++ 2 files changed, 301 insertions(+), 1 deletion(-) create mode 100644 src/extension/log/syntaxes/rn-output.tmGrammar.json diff --git a/package.json b/package.json index ad52253ca..aa3274aec 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ }, "categories": [ "Debuggers", - "Other" + "Other", + "Programming Languages" ], "activationEvents": [ "workspaceContains:node_modules/react-native", @@ -48,6 +49,21 @@ ], "main": "./src/extension/rn-extension", "contributes": { + "languages": [ + { + "id": "ReactNativeToolsOutput", + "extensions": [ + ".log" + ] + } + ], + "grammars": [ + { + "language": "ReactNativeToolsOutput", + "scopeName": "react-native-tools-output", + "path": "./src/extension/log/syntaxes/rn-output.tmGrammar.json" + } + ], "commands": [ { "command": "reactNative.launchAndroidSimulator-preview", diff --git a/src/extension/log/syntaxes/rn-output.tmGrammar.json b/src/extension/log/syntaxes/rn-output.tmGrammar.json new file mode 100644 index 000000000..933e8bde8 --- /dev/null +++ b/src/extension/log/syntaxes/rn-output.tmGrammar.json @@ -0,0 +1,284 @@ +{ + "scopeName": "react-native-tools-output", + "patterns": [ + { + "include": "#executing" + }, + { + "include": "#build-succes" + }, + { + "include": "#build-failed" + }, + { + "include": "#url" + }, + { + "include": "#ip-address" + }, + { + "include": "#filepath" + }, + { + "include": "#numeric-decimal" + }, + { + "include": "#string-single-quoted" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#email-address" + }, + { + "include": "#react-native-tools-timestamp" + }, + { + "include": "#date-MM/DD/(YY)YY" + }, + { + "include": "#date-(YY)YY/DD/MM" + }, + { + "include": "#date-DD/MM/(YY)YY" + }, + { + "include": "#date-ISO" + }, + { + "include": "#time" + }, + { + "include": "#npm-output" + }, + { + "include": "#error-tag" + }, + { + "include": "#warn-tag" + }, + { + "include": "#info-tag" + }, + { + "include": "#debug-tag" + }, + { + "include": "#react-native-error" + }, + { + "include": "#react-native-warn" + }, + { + "include": "#react-native-info" + }, + { + "include": "#react-native-debug" + }, + { + "include": "#react-native-bundle" + }, + { + "include": "#android-logcat-error" + }, + { + "include": "#android-logcat-warning" + }, + { + "include": "#android-logcat-info" + }, + { + "include": "#android-logcat-debug" + }, + { + "include": "#android-logcat-verbose" + }, + { + "include": "#serilog-error" + }, + { + "include": "#serilog-warning" + }, + { + "include": "#serilog-info" + }, + { + "include": "#serilog-debug" + }, + { + "include": "#serilog-verbose" + }, + { + "include": "#android-logcat-timestamp" + }, + { + "include": "#fail" + }, + { + "include": "#fail-stack" + } + ], + "repository": { + "string-double-quoted": { + "match": "\\s\"(.*?)\"\\s|\"(.*?)\"\\s|\\s\"(.*?)\"", + "name": "string.quoted" + }, + "string-single-quoted": { + "match": "\\s'(.*?)'\\s|'(.*?)'\\s|\\s'(.*?)'", + "name": "string.quoted" + }, + "email-address": { + "match": "/^([a-z0-9_\\.-]+)@([a-z0-9_\\.-]+)\\.([a-z\\.]{2,6})$/", + "name": "markup.underline.link" + }, + "url": { + "match": "(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\/\\w \\.-]*)*\/?$/", + "name": "markup.underline.link" + }, + "ip-address": { + "match": "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])(:(6553[0-5]|655[0-2][0-9]\\d|65[0-4](\\d){2}|6[0-4](\\d){3}|[1-5](\\d){4}|[1-9](\\d){0,3}))?", + "name": "markup.underline.link" + }, + "filepath": { + "match": "(([a-zA-Z]:)|((\\\\|\/){1,2}\\w+)\\$?)((\\\\|\/)(\\w[\\w ]*.*))+\\.([a-zA-Z0-9]+)", + "name": "markup.underline.link" + }, + "android-logcat-timestamp": { + "match": "\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}:\\d{2}(:\\d{2}([.,]\\d{1,})?)?(Z| ?[+-]\\d{1,2}:\\d{2})?(.\\d{3})?", + "name": "constant.numeric" + }, + "react-native-tools-timestamp": { + "match": "\\[(?i)(([Ss]un(day)?|[Mm]on(day)?|[Tt]ue(sday)?|[Ww]ed(nesday)?|[Tt]hu(rsday)?|[Ff]ri(day)?|[Ss]at(urday)?)?\\s)?(([Jj]an(uary)?|[Ff]eb(ruary)?|[Mm]ar(ch)?|[Aa]pr(il)?|[Mm]ay|[Jj]un(e)?|[Jj]ul(y)?|[Aa]ug(ust)?|[Ss]ep(tember)?|[Oo]ct(ober)?|[Nn]ov(ember)?|[Dd]ec(ember)?)\\s)+((0?[1-9]|[1-2][0-9]|3[0-1])?\\s)+([1-2][0-9][0-9][0-9]).*\\]", + "name": "constant.numeric" + }, + "date-MM/DD/(YY)YY": { + "match": "\\b(((0|1)?[0-9][1-2]?)|(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?))[/|\\-|\\.| ]([0-2]?[0-9]|[3][0-1])[/|\\-|\\.| ]((19|20)?[0-9]{2})\\b", + "name": "constant.numeric" + }, + "date-(YY)YY/DD/MM": { + "match": "\\b((19|20)?[0-9]{2}[/|\\-|\\.| ](((0|1)?[0-9][1-2]?)|(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?))[/|\\-|\\.| ]([0-2]?[0-9]|[3][0-1]))\\b", + "name": "constant.numeric" + }, + "date-DD/MM/(YY)YY": { + "match": "\\b([0-2]?[0-9]|[3][0-1])[/|\\-|\\.| ](((0|1)?[0-9][1-2]?)|(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?))[/|\\-|\\.| ]((19|20)?[0-9]{2})\\b", + "name": "constant.numeric" + }, + "date-ISO": { + "match": "\\b\\d{4}-\\d{2}-\\d{2}(T|\\b)", + "name": "constant.numeric" + }, + "time": { + "match": "\\d{1,2}:\\d{1,2}:\\d{2}(:\\d{2}([.,]\\d{1,})?)?(Z| ?[+-]\\d{1,2}:\\d{2})?(.\\d{3})?", + "name": "constant.numeric" + }, + "numeric-decimal": { + "match": "\\b\\d+(\\.\\d+)?\\b", + "name": "constant.numeric" + }, + "npm-output": { + "match": "(-)+>|├(─)+|└(─)+", + "name": "comment.line" + }, + "error-tag": { + "match": "\\[(Down|Error|Failure|Fail|Fatal|DOWN|ERROR|FAILURE|FAIL|FATAL)\\]", + "name": "markup.bold invalid.illegal" + }, + "warn-tag": { + "match": "\\[(warning|warn|Warning|Warn|WARNING|WARN)\\]", + "name": "markup.bold markup.deleted" + }, + "info-tag": { + "match": "\\[(hint|info|information|true|log|Hint|Info|Information|Log|HINT|INFO|INFORMATION|LOG)\\]", + "name": "markup.bold markup.inserted" + }, + "debug-tag": { + "match": "\\[(debug|Debug|DEBUG)\\]", + "name": "markup.bold markup.changed" + }, + "react-native-error": { + "match": "\\s{2}(DOWN|ERROR|FAILURE|FAIL|FATAL)\\b.*$", + "name": "markup.bold invalid.illegal" + }, + "react-native-warn": { + "match": "\\s{2}(WARNING|WARN)\\b", + "name": "markup.bold markup.deleted" + }, + "react-native-info": { + "match": "\\s{2}(HINT|INFO|INFORMATION|LOG)\\b", + "name": "markup.bold markup.inserted" + }, + "react-native-debug": { + "match": "\\s{2}DEBUG\\b", + "name": "markup.bold markup.changed" + }, + "react-native-bundle": { + "match": "\\s{2}BUNDLE\\b", + "name": "markup.bold keyword" + }, + "constants": { + "match": "\\b(true|false|null|undefined|NaN)\\b", + "name": "constant.language" + }, + "fail": { + "match": "\\b(Exception|Error|Failure|Fail|EXCEPTION|ERROR|FAILURE|FAIL):?\\b.*$", + "name": "invalid" + }, + "fail-stack": { + "match": "^[\\t ]*at.+$", + "name": "invalid" + }, + "android-logcat-error": { + "match": "\\sE\\s[a-zA-Z]+:\\s.*$", + "name": "invalid" + }, + "android-logcat-warning": { + "match": "\\sW\\s[a-zA-Z]+:\\s", + "name": "markup.bold markup.deleted" + }, + "android-logcat-info": { + "match": "\\sI\\s[a-zA-Z]+:\\s", + "name": "markup.bold markup.inserted" + }, + "android-logcat-debug": { + "match": "\\sD\\s[a-zA-Z]+:\\s", + "name": "markup.bold markup.changed" + }, + "android-logcat-verbose": { + "match": "\\sV\\s[a-zA-Z]+:\\s", + "name": "markup.bold comment" + }, + "serilog-error": { + "match": "^(?i)([a-zA-Z]*\\s+)?(error|eror|err|er|e|fatal|fatl|ftl)\\b", + "name": "markup.bold invalid" + }, + "serilog-warning": { + "match": "^(?i)([a-zA-Z]*\\s+)?[Ww](arning|arn|rn)\\b", + "name": "markup.bold markup.deleted" + }, + "serilog-info": { + "match": "^(?i)([a-zA-Z]*\\s+)?([Ii](nformation|nfo|nf)|In)\\b", + "name": "markup.bold markup.inserted" + }, + "serilog-debug": { + "match": "^(?i)[Dd](ebug|bug|bg)\\b", + "name": "markup.bold markup.changed" + }, + "serilog-verbose": { + "match": "^(?i)([a-zA-Z]*\\s+)?[Vv](erbose|erb|rb)\\b", + "name": "markup.bold comment" + }, + "executing": { + "match": "^\\s*((>+)|([Ee]xec(ute)?)|([Ee]xport)|([Tt]ask))\\s.*$", + "name": "markup.inserted" + }, + "build-succes": { + "match": "^.*BUILD SUCCE(EDED|SSFULL?).*$", + "name": "markup.bold" + }, + "build-failed": { + "match": "^.*BUILD FAILED.*$", + "name": "markup.bold invalid" + } + } +} \ No newline at end of file From b6e398b1cb5260e37ac6cbbc6d12fe7f7ab3b347 Mon Sep 17 00:00:00 2001 From: Mikhail Suendukov <43934531+JiglioNero@users.noreply.github.com> Date: Wed, 9 Sep 2020 11:02:56 +0300 Subject: [PATCH 2/6] add mimetypes for colorize output channels --- package.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index aa3274aec..b4d32add3 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,7 @@ }, "categories": [ "Debuggers", - "Other", - "Programming Languages" + "Other" ], "activationEvents": [ "workspaceContains:node_modules/react-native", @@ -54,6 +53,13 @@ "id": "ReactNativeToolsOutput", "extensions": [ ".log" + ], + "mimetypes": [ + "log", + "text/log", + "text/x-log", + "text/x-code-output", + "x-code-output" ] } ], From 135eb7970a88755caf1ea01a4bc8ec46b9386c04 Mon Sep 17 00:00:00 2001 From: Mikhail Suendukov <43934531+JiglioNero@users.noreply.github.com> Date: Wed, 7 Oct 2020 16:25:53 +0300 Subject: [PATCH 3/6] move grammatic to root path --- package.json | 2 +- .../log/syntaxes => syntaxes}/rn-output.tmGrammar.json | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {src/extension/log/syntaxes => syntaxes}/rn-output.tmGrammar.json (100%) diff --git a/package.json b/package.json index 8845d3cb5..1aca027e2 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ { "language": "ReactNativeToolsOutput", "scopeName": "react-native-tools-output", - "path": "./src/extension/log/syntaxes/rn-output.tmGrammar.json" + "path": "./syntaxes/rn-output.tmGrammar.json" } ], "commands": [ diff --git a/src/extension/log/syntaxes/rn-output.tmGrammar.json b/syntaxes/rn-output.tmGrammar.json similarity index 100% rename from src/extension/log/syntaxes/rn-output.tmGrammar.json rename to syntaxes/rn-output.tmGrammar.json From 6cde87720f912f091a1554c25f5e82f3045bf918 Mon Sep 17 00:00:00 2001 From: Mikhail Suendukov <43934531+JiglioNero@users.noreply.github.com> Date: Thu, 8 Oct 2020 17:10:25 +0300 Subject: [PATCH 4/6] improve performance --- syntaxes/rn-output.tmGrammar.json | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/syntaxes/rn-output.tmGrammar.json b/syntaxes/rn-output.tmGrammar.json index 933e8bde8..9b77adfa5 100644 --- a/syntaxes/rn-output.tmGrammar.json +++ b/syntaxes/rn-output.tmGrammar.json @@ -10,9 +10,6 @@ { "include": "#build-failed" }, - { - "include": "#url" - }, { "include": "#ip-address" }, @@ -121,11 +118,11 @@ ], "repository": { "string-double-quoted": { - "match": "\\s\"(.*?)\"\\s|\"(.*?)\"\\s|\\s\"(.*?)\"", + "match": "\"(.*?)\"", "name": "string.quoted" }, "string-single-quoted": { - "match": "\\s'(.*?)'\\s|'(.*?)'\\s|\\s'(.*?)'", + "match": "'(.*?)'", "name": "string.quoted" }, "email-address": { From a94f4e103c77b3caf606afc8eb7d7c3dd2b3b957 Mon Sep 17 00:00:00 2001 From: JiglioNero Date: Fri, 19 Mar 2021 14:17:11 +0300 Subject: [PATCH 5/6] use custom textMate tokens --- syntaxes/rn-output.tmGrammar.json | 90 +++++++++++++++---------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/syntaxes/rn-output.tmGrammar.json b/syntaxes/rn-output.tmGrammar.json index 9b77adfa5..addaf00d2 100644 --- a/syntaxes/rn-output.tmGrammar.json +++ b/syntaxes/rn-output.tmGrammar.json @@ -119,163 +119,163 @@ "repository": { "string-double-quoted": { "match": "\"(.*?)\"", - "name": "string.quoted" + "name": "string.quoted rnt.output.string" }, "string-single-quoted": { "match": "'(.*?)'", - "name": "string.quoted" + "name": "string.quoted rnt.output.string" }, "email-address": { "match": "/^([a-z0-9_\\.-]+)@([a-z0-9_\\.-]+)\\.([a-z\\.]{2,6})$/", - "name": "markup.underline.link" + "name": "markup.underline.link rnt.output.url" }, "url": { "match": "(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\/\\w \\.-]*)*\/?$/", - "name": "markup.underline.link" + "name": "markup.underline.link rnt.output.url" }, "ip-address": { "match": "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])(:(6553[0-5]|655[0-2][0-9]\\d|65[0-4](\\d){2}|6[0-4](\\d){3}|[1-5](\\d){4}|[1-9](\\d){0,3}))?", - "name": "markup.underline.link" + "name": "markup.underline.link rnt.output.url" }, "filepath": { "match": "(([a-zA-Z]:)|((\\\\|\/){1,2}\\w+)\\$?)((\\\\|\/)(\\w[\\w ]*.*))+\\.([a-zA-Z0-9]+)", - "name": "markup.underline.link" + "name": "markup.underline.link rnt.output.url" }, "android-logcat-timestamp": { "match": "\\d{2}-\\d{2}\\s\\d{1,2}:\\d{1,2}:\\d{2}(:\\d{2}([.,]\\d{1,})?)?(Z| ?[+-]\\d{1,2}:\\d{2})?(.\\d{3})?", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.timestamp" }, "react-native-tools-timestamp": { "match": "\\[(?i)(([Ss]un(day)?|[Mm]on(day)?|[Tt]ue(sday)?|[Ww]ed(nesday)?|[Tt]hu(rsday)?|[Ff]ri(day)?|[Ss]at(urday)?)?\\s)?(([Jj]an(uary)?|[Ff]eb(ruary)?|[Mm]ar(ch)?|[Aa]pr(il)?|[Mm]ay|[Jj]un(e)?|[Jj]ul(y)?|[Aa]ug(ust)?|[Ss]ep(tember)?|[Oo]ct(ober)?|[Nn]ov(ember)?|[Dd]ec(ember)?)\\s)+((0?[1-9]|[1-2][0-9]|3[0-1])?\\s)+([1-2][0-9][0-9][0-9]).*\\]", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.timestamp" }, "date-MM/DD/(YY)YY": { "match": "\\b(((0|1)?[0-9][1-2]?)|(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?))[/|\\-|\\.| ]([0-2]?[0-9]|[3][0-1])[/|\\-|\\.| ]((19|20)?[0-9]{2})\\b", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.timestamp" }, "date-(YY)YY/DD/MM": { "match": "\\b((19|20)?[0-9]{2}[/|\\-|\\.| ](((0|1)?[0-9][1-2]?)|(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?))[/|\\-|\\.| ]([0-2]?[0-9]|[3][0-1]))\\b", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.timestamp" }, "date-DD/MM/(YY)YY": { "match": "\\b([0-2]?[0-9]|[3][0-1])[/|\\-|\\.| ](((0|1)?[0-9][1-2]?)|(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?))[/|\\-|\\.| ]((19|20)?[0-9]{2})\\b", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.timestamp" }, "date-ISO": { "match": "\\b\\d{4}-\\d{2}-\\d{2}(T|\\b)", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.timestamp" }, "time": { "match": "\\d{1,2}:\\d{1,2}:\\d{2}(:\\d{2}([.,]\\d{1,})?)?(Z| ?[+-]\\d{1,2}:\\d{2})?(.\\d{3})?", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.timestamp" }, "numeric-decimal": { "match": "\\b\\d+(\\.\\d+)?\\b", - "name": "constant.numeric" + "name": "constant.numeric rnt.output.numeric" }, "npm-output": { "match": "(-)+>|├(─)+|└(─)+", - "name": "comment.line" + "name": "comment.line rnt.output.process" }, "error-tag": { "match": "\\[(Down|Error|Failure|Fail|Fatal|DOWN|ERROR|FAILURE|FAIL|FATAL)\\]", - "name": "markup.bold invalid.illegal" + "name": "markup.bold invalid.illegal rnt.output.error" }, "warn-tag": { "match": "\\[(warning|warn|Warning|Warn|WARNING|WARN)\\]", - "name": "markup.bold markup.deleted" + "name": "markup.bold markup.deleted rnt.output.warn" }, "info-tag": { "match": "\\[(hint|info|information|true|log|Hint|Info|Information|Log|HINT|INFO|INFORMATION|LOG)\\]", - "name": "markup.bold markup.inserted" + "name": "markup.bold markup.inserted rnt.output.info" }, "debug-tag": { "match": "\\[(debug|Debug|DEBUG)\\]", - "name": "markup.bold markup.changed" + "name": "markup.bold markup.changed rnt.output.debug" }, "react-native-error": { - "match": "\\s{2}(DOWN|ERROR|FAILURE|FAIL|FATAL)\\b.*$", - "name": "markup.bold invalid.illegal" + "match": "\\s(DOWN|ERROR|FAILURE|FAIL|FATAL)\\b.*$", + "name": "markup.bold invalid.illegal rnt.output.error" }, "react-native-warn": { - "match": "\\s{2}(WARNING|WARN)\\b", - "name": "markup.bold markup.deleted" + "match": "\\s(WARNING|WARN)\\b", + "name": "markup.bold markup.deleted rnt.output.warn" }, "react-native-info": { - "match": "\\s{2}(HINT|INFO|INFORMATION|LOG)\\b", - "name": "markup.bold markup.inserted" + "match": "\\s(HINT|INFO|INFORMATION|LOG)\\b", + "name": "markup.bold markup.inserted rnt.output.info" }, "react-native-debug": { - "match": "\\s{2}DEBUG\\b", - "name": "markup.bold markup.changed" + "match": "\\sDEBUG\\b", + "name": "markup.bold markup.changed rnt.output.debug" }, "react-native-bundle": { - "match": "\\s{2}BUNDLE\\b", - "name": "markup.bold keyword" + "match": "\\sBUNDLE\\b", + "name": "markup.bold rnt.output.process" }, "constants": { "match": "\\b(true|false|null|undefined|NaN)\\b", - "name": "constant.language" + "name": "constant.language rnt.output.constant" }, "fail": { "match": "\\b(Exception|Error|Failure|Fail|EXCEPTION|ERROR|FAILURE|FAIL):?\\b.*$", - "name": "invalid" + "name": "invalid rnt.output.error" }, "fail-stack": { "match": "^[\\t ]*at.+$", - "name": "invalid" + "name": "invalid rnt.output.error" }, "android-logcat-error": { "match": "\\sE\\s[a-zA-Z]+:\\s.*$", - "name": "invalid" + "name": "invalid rnt.output.error" }, "android-logcat-warning": { "match": "\\sW\\s[a-zA-Z]+:\\s", - "name": "markup.bold markup.deleted" + "name": "markup.bold markup.deleted rnt.output.warn" }, "android-logcat-info": { "match": "\\sI\\s[a-zA-Z]+:\\s", - "name": "markup.bold markup.inserted" + "name": "markup.bold markup.inserted rnt.output.info" }, "android-logcat-debug": { "match": "\\sD\\s[a-zA-Z]+:\\s", - "name": "markup.bold markup.changed" + "name": "markup.bold markup.changed rnt.output.debug" }, "android-logcat-verbose": { "match": "\\sV\\s[a-zA-Z]+:\\s", - "name": "markup.bold comment" + "name": "markup.bold comment rnt.output.verbose" }, "serilog-error": { "match": "^(?i)([a-zA-Z]*\\s+)?(error|eror|err|er|e|fatal|fatl|ftl)\\b", - "name": "markup.bold invalid" + "name": "markup.bold invalid rnt.output.error" }, "serilog-warning": { "match": "^(?i)([a-zA-Z]*\\s+)?[Ww](arning|arn|rn)\\b", - "name": "markup.bold markup.deleted" + "name": "markup.bold markup.deleted rnt.output.warn" }, "serilog-info": { "match": "^(?i)([a-zA-Z]*\\s+)?([Ii](nformation|nfo|nf)|In)\\b", - "name": "markup.bold markup.inserted" + "name": "markup.bold markup.inserted rnt.output.info" }, "serilog-debug": { "match": "^(?i)[Dd](ebug|bug|bg)\\b", - "name": "markup.bold markup.changed" + "name": "markup.bold markup.changed rnt.output.debug" }, "serilog-verbose": { "match": "^(?i)([a-zA-Z]*\\s+)?[Vv](erbose|erb|rb)\\b", - "name": "markup.bold comment" + "name": "markup.bold comment rnt.output.verbose" }, "executing": { "match": "^\\s*((>+)|([Ee]xec(ute)?)|([Ee]xport)|([Tt]ask))\\s.*$", - "name": "markup.inserted" + "name": "markup.inserted rnt.output.process" }, "build-succes": { "match": "^.*BUILD SUCCE(EDED|SSFULL?).*$", - "name": "markup.bold" + "name": "markup.bold rnt.output.success" }, "build-failed": { "match": "^.*BUILD FAILED.*$", - "name": "markup.bold invalid" + "name": "markup.bold invalid rnt.output.error" } } } \ No newline at end of file From a768e25e592b857b042b923c3ed7c2046ac385d7 Mon Sep 17 00:00:00 2001 From: Quan Jin Date: Tue, 2 Aug 2022 18:08:03 +0800 Subject: [PATCH 6/6] update --- syntaxes/rn-output.tmGrammar.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syntaxes/rn-output.tmGrammar.json b/syntaxes/rn-output.tmGrammar.json index addaf00d2..f98ae00f5 100644 --- a/syntaxes/rn-output.tmGrammar.json +++ b/syntaxes/rn-output.tmGrammar.json @@ -5,7 +5,7 @@ "include": "#executing" }, { - "include": "#build-succes" + "include": "#build-success" }, { "include": "#build-failed" @@ -269,7 +269,7 @@ "match": "^\\s*((>+)|([Ee]xec(ute)?)|([Ee]xport)|([Tt]ask))\\s.*$", "name": "markup.inserted rnt.output.process" }, - "build-succes": { + "build-success": { "match": "^.*BUILD SUCCE(EDED|SSFULL?).*$", "name": "markup.bold rnt.output.success" },