diff --git a/extensions/html/package.json b/extensions/html/package.json
index 1e7ea9c1173..b126b1f8f48 100644
--- a/extensions/html/package.json
+++ b/extensions/html/package.json
@@ -6,7 +6,7 @@
"contributes": {
"languages": [{
"id": "html",
- "extensions": [ ".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm" ],
+ "extensions": [ ".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm", ".vue" ],
"aliases": [ "HTML", "htm", "html", "xhtml" ],
"mimetypes": ["text/html", "text/x-jshtm", "text/template", "text/ng-template", "application/xhtml+xml"]
}],
diff --git a/extensions/node-debug/node-debug.azure.json b/extensions/node-debug/node-debug.azure.json
index ff103612c70..42803d6028a 100644
--- a/extensions/node-debug/node-debug.azure.json
+++ b/extensions/node-debug/node-debug.azure.json
@@ -1,6 +1,6 @@
{
"account": "monacobuild",
"container": "debuggers",
- "zip": "3c7ed19/node-debug.zip",
+ "zip": "73e0456/node-debug.zip",
"output": ""
}
diff --git a/extensions/perl/syntaxes/Perl.plist b/extensions/perl/syntaxes/Perl.plist
index 7b6ee3888dd..9b608d3030e 100644
--- a/extensions/perl/syntaxes/Perl.plist
+++ b/extensions/perl/syntaxes/Perl.plist
@@ -56,7 +56,7 @@
comment
string.regexp.compile.perl
end
- ((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))
+ ((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|\s*$))
endCaptures
1
@@ -309,7 +309,7 @@
comment
string.regexp.find-m.perl
end
- ((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))
+ ((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|\s*$))
endCaptures
1
@@ -595,7 +595,7 @@
comment
string.regexp.replace.perl
end
- ((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)\]>]|$))
+ ((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)\]>]|\s*$))
endCaptures
1
@@ -1161,7 +1161,7 @@
contentName
string.regexp.find.perl
end
- ((\1([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))
+ ((\1([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|\s*$))
endCaptures
1
diff --git a/extensions/perl/test/colorize-fixtures/test2.pl b/extensions/perl/test/colorize-fixtures/test2.pl
new file mode 100644
index 00000000000..0a089b3b21a
--- /dev/null
+++ b/extensions/perl/test/colorize-fixtures/test2.pl
@@ -0,0 +1,31 @@
+die("[$sheet->{label}] Unexpected sheet format.") unless (
+ $sheet->{"$date_col$row"} =~ /CALL_DATE/i &&
+ $sheet->{"$pixel_cols[4]$row"} =~ /Home_Bind_Count/i
+ );
+
+ $row++;
+ while ($row < $sheet->{maxrow}) {
+ $row++;
+ $total_lines++;
+
+ my $date = $sheet->{"$date_col$row"};
+ next unless $date;
+ (warning "Unexpected date format: '$date'"), next unless ($date =~ /^2\d\d\d-\d\d-\d\d$/);
+
+ my $phone = trim($sheet->{"$phone_col$row"});
+ (warning "Unexpected phone format: '$phone'."), next unless ($phone =~ /^\d{10}$/);
+
+ info $phone;
+ next if ($date gt $date_to || $date lt $date_from);
+
+ my @pixels = (0) x 5;
+ for (1..4) {
+ $pixels[$_] = trim($sheet->{"$pixel_cols[4]$row"});
+ (warning "Pixel $_ is not a number in the row # $row."), next unless looks_like_number($pixels[$_]);
+ };
+
+ for (1..4) {
+ add_phone_activity($date, $phone, "pixel-$_", $pixels[$_]) if $pixels[$_];
+ };
+ $parsed_lines++;
+ };
\ No newline at end of file
diff --git a/extensions/perl/test/colorize-results/test2_pl.json b/extensions/perl/test/colorize-results/test2_pl.json
new file mode 100644
index 00000000000..9a1b078ea65
--- /dev/null
+++ b/extensions/perl/test/colorize-results/test2_pl.json
@@ -0,0 +1,3313 @@
+[
+ {
+ "c": "die",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": "(",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "[",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "sheet",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "->{label}] Unexpected sheet format.",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": ") ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "unless",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " (",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "sheet",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "->",
+ "t": "comparison.keyword.operator.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
+ }
+ },
+ {
+ "c": "{",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "date_col$row",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "} =~ ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "CALL_DATE",
+ "t": "find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "i",
+ "t": "control.definition.find.keyword.perl.punctuation.regexp.regexp-option.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " &&",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "sheet",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "->",
+ "t": "comparison.keyword.operator.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
+ }
+ },
+ {
+ "c": "{",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "pixel_cols",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "[4]",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "row",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "} =~ ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "Home_Bind_Count",
+ "t": "find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "i",
+ "t": "control.definition.find.keyword.perl.punctuation.regexp.regexp-option.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": ");",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "row",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "++;",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "while",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " (",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "row",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " < ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "sheet",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "->",
+ "t": "comparison.keyword.operator.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
+ }
+ },
+ {
+ "c": "{",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "maxrow",
+ "t": "bareword.constant.other.perl",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "}) {",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "row",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "++;",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "total_lines",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "++;",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "my",
+ "t": "modifier.perl.storage",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.storage.modifier rgb(86, 156, 214)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.storage.modifier rgb(0, 0, 255)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.storage.modifier rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.storage.modifier rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.storage.modifier rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " = ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "sheet",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "->",
+ "t": "comparison.keyword.operator.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
+ }
+ },
+ {
+ "c": "{",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "date_col$row",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "};",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "next",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "unless",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": ";",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "(warning ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "Unexpected date format: '",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "date",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "'",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "), ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "next",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "unless",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " (",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " =~ ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "^2",
+ "t": "find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "\\d\\d\\d",
+ "t": "character.constant.escape.find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "-",
+ "t": "find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "\\d\\d",
+ "t": "character.constant.escape.find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "-",
+ "t": "find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "\\d\\d",
+ "t": "character.constant.escape.find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "anchor.control.find.keyword.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": ");",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "my",
+ "t": "modifier.perl.storage",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.storage.modifier rgb(86, 156, 214)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.storage.modifier rgb(0, 0, 255)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.storage.modifier rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.storage.modifier rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.storage.modifier rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "phone",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " = trim(",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "sheet",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "->",
+ "t": "comparison.keyword.operator.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
+ }
+ },
+ {
+ "c": "{",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "phone_col$row",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "});",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "(warning ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "Unexpected phone format: '",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "phone",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "'.",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "), ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "next",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "unless",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " (",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "phone",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " =~ ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "^",
+ "t": "find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "\\d",
+ "t": "character.constant.escape.find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "{10}",
+ "t": "find.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "anchor.control.find.keyword.perl.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": "/",
+ "t": "definition.find.perl.punctuation.regexp.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.regexp rgb(209, 105, 105)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.regexp rgb(129, 31, 63)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.regexp rgb(209, 105, 105)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.regexp rgb(129, 31, 63)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.regexp rgb(209, 105, 105)"
+ }
+ },
+ {
+ "c": ");",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "info ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "phone",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": ";",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "next",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "if",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " (",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "gt",
+ "t": "function.perl.support",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date_to",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " || ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "lt",
+ "t": "function.perl.support",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date_from",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": ");",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "my",
+ "t": "modifier.perl.storage",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.storage.modifier rgb(86, 156, 214)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.storage.modifier rgb(0, 0, 255)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.storage.modifier rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.storage.modifier rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.storage.modifier rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "@",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "pixels",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " = (0) ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "x",
+ "t": "function.perl.support",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "5",
+ "t": "entity.function.name.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function rgb(220, 220, 170)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function rgb(121, 94, 38)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.function rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": ";",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "for",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " (1..4) {",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "pixels",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "[",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.other.perl.predefined.punctuation.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "_",
+ "t": "other.perl.predefined.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "] = trim(",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "sheet",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "->",
+ "t": "comparison.keyword.operator.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
+ }
+ },
+ {
+ "c": "{",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "pixel_cols",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "[4]",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "row",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "});",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "(warning ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "Pixel ",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.other.perl.predefined.punctuation.quoted.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "_",
+ "t": "double.other.perl.predefined.quoted.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": " is not a number in the row # ",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.global.other.perl.punctuation.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "row",
+ "t": "double.global.other.perl.quoted.readwrite.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": ".",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "), ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "next",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "unless",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " looks_like_number(",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "pixels",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "[",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.other.perl.predefined.punctuation.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "_",
+ "t": "other.perl.predefined.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "]);",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "};",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "for",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " (1..4) {",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "add_phone_activity(",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "date",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": ", ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "phone",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": ", ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "begin.definition.double.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "pixel-",
+ "t": "double.perl.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.double.other.perl.predefined.punctuation.quoted.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "_",
+ "t": "double.other.perl.predefined.quoted.string.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "definition.double.end.perl.punctuation.quoted.string",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string rgb(206, 145, 120)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string rgb(206, 145, 120)"
+ }
+ },
+ {
+ "c": ", ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "pixels",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "[",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.other.perl.predefined.punctuation.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "_",
+ "t": "other.perl.predefined.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "]) ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "if",
+ "t": "control.keyword.perl",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
+ "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
+ "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
+ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "pixels",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "[",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.other.perl.predefined.punctuation.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "_",
+ "t": "other.perl.predefined.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "];",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "};",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "even-tab.leading-tabs.meta",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "$",
+ "t": "definition.global.other.perl.punctuation.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "parsed_lines",
+ "t": "global.other.perl.readwrite.variable",
+ "r": {
+ "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)",
+ "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "++;",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": " ",
+ "t": "leading-tabs.meta.odd-tab",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ },
+ {
+ "c": "};",
+ "t": "",
+ "r": {
+ "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
+ "light_plus": ".vs .token rgb(0, 0, 0)",
+ "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
+ "light_vs": ".vs .token rgb(0, 0, 0)",
+ "hc_black": ".hc-black .token rgb(255, 255, 255)"
+ }
+ }
+]
\ No newline at end of file
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index 44de947550b..f6a3d7f0e1b 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -406,14 +406,14 @@
"resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz"
},
"vscode-debugprotocol": {
- "version": "1.8.0",
- "from": "vscode-debugprotocol@1.8.0",
- "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.8.0.tgz"
+ "version": "1.9.0",
+ "from": "vscode-debugprotocol@1.9.0",
+ "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.9.0.tgz"
},
"vscode-textmate": {
- "version": "1.0.11",
- "from": "vscode-textmate@1.0.11",
- "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-1.0.11.tgz"
+ "version": "1.1.0",
+ "from": "vscode-textmate@1.1.0",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-1.1.0.tgz"
},
"windows-mutex": {
"version": "0.2.0",
diff --git a/package.json b/package.json
index 00582686eb7..d2ca5071e13 100644
--- a/package.json
+++ b/package.json
@@ -31,8 +31,8 @@
"sax": "1.1.2",
"semver": "4.3.6",
"term.js": "https://github.com/jeremyramin/term.js/tarball/master",
- "vscode-debugprotocol": "1.8.0",
- "vscode-textmate": "1.0.11",
+ "vscode-debugprotocol": "1.9.0",
+ "vscode-textmate": "1.1.0",
"winreg": "1.2.0",
"yauzl": "2.3.1"
},
diff --git a/src/vs/base/browser/browser.ts b/src/vs/base/browser/browser.ts
index 99fda39e773..f0b00dd77ae 100644
--- a/src/vs/base/browser/browser.ts
+++ b/src/vs/base/browser/browser.ts
@@ -14,9 +14,12 @@ class ZoomManager {
public static INSTANCE = new ZoomManager();
private _zoomLevel: number = 0;
+ private _pixelRatioCache: number = 0;
+ private _pixelRatioComputed: boolean = false;
private _onDidChangeZoomLevel: Emitter = new Emitter();
public onDidChangeZoomLevel:Event = this._onDidChangeZoomLevel.event;
+
public getZoomLevel(): number {
return this._zoomLevel;
}
@@ -27,13 +30,36 @@ class ZoomManager {
}
this._zoomLevel = zoomLevel;
+ this._pixelRatioComputed = false;
this._onDidChangeZoomLevel.fire(this._zoomLevel);
}
+
+ public getPixelRatio(): number {
+ if (!this._pixelRatioComputed) {
+ this._pixelRatioCache = this._computePixelRatio();
+ this._pixelRatioComputed = true;
+ }
+ return this._pixelRatioCache;
+ }
+
+ private _computePixelRatio(): number {
+ let ctx = document.createElement('canvas').getContext('2d');
+ let dpr = window.devicePixelRatio || 1;
+ let bsr = (ctx).webkitBackingStorePixelRatio ||
+ (ctx).mozBackingStorePixelRatio ||
+ (ctx).msBackingStorePixelRatio ||
+ (ctx).oBackingStorePixelRatio ||
+ (ctx).backingStorePixelRatio || 1;
+ return dpr / bsr;
+ }
}
export function getZoomLevel(): number {
return ZoomManager.INSTANCE.getZoomLevel();
}
+export function getPixelRatio(): number {
+ return ZoomManager.INSTANCE.getPixelRatio();
+}
export function setZoomLevel(zoomLevel:number): void {
ZoomManager.INSTANCE.setZoomLevel(zoomLevel);
}
diff --git a/src/vs/base/browser/ui/sash/sash.ts b/src/vs/base/browser/ui/sash/sash.ts
index 7f0a32190c9..c4159fe0099 100644
--- a/src/vs/base/browser/ui/sash/sash.ts
+++ b/src/vs/base/browser/ui/sash/sash.ts
@@ -125,7 +125,7 @@ export class Sash extends EventEmitter {
this.emit('start', startEvent);
let $window = $(window);
- let containerCssClass = `${this.getOrientation()}-cursor-container${isMacintosh ? '-mac' : ''}`;
+ let containerCSSClass = `${this.getOrientation()}-cursor-container${isMacintosh ? '-mac' : ''}`;
let lastCurrentX = startX;
let lastCurrentY = startY;
@@ -151,12 +151,12 @@ export class Sash extends EventEmitter {
this.emit('end');
$window.off('mousemove');
- document.body.classList.remove(containerCssClass);
+ document.body.classList.remove(containerCSSClass);
$(DOM.getElementsByTagName('iframe')).style('pointer-events', 'auto');
});
- document.body.classList.add(containerCssClass);
+ document.body.classList.add(containerCSSClass);
}
private onTouchStart(event: GestureEvent): void {
diff --git a/src/vs/base/common/async.ts b/src/vs/base/common/async.ts
index fa16a7aaa26..4e1030aa48d 100644
--- a/src/vs/base/common/async.ts
+++ b/src/vs/base/common/async.ts
@@ -2,13 +2,14 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
+
'use strict';
import * as errors from 'vs/base/common/errors';
-import { Promise, TPromise, ValueCallback, ErrorCallback, ProgressCallback } from 'vs/base/common/winjs.base';
import * as platform from 'vs/base/common/platform';
-import {CancellationToken, CancellationTokenSource} from 'vs/base/common/cancellation';
-import {Disposable} from 'vs/base/common/lifecycle';
+import { Promise, TPromise, ValueCallback, ErrorCallback, ProgressCallback } from 'vs/base/common/winjs.base';
+import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation';
+import { Disposable } from 'vs/base/common/lifecycle';
function isThenable(obj: any): obj is Thenable {
return obj && typeof (>obj).then === 'function';
@@ -63,9 +64,15 @@ export interface ITask {
* var throttler = new Throttler();
* var letters = [];
*
- * function letterReceived(l) {
+ * function deliver() {
+ * const lettersToDeliver = letters;
+ * letters = [];
+ * return makeTheTrip(lettersToDeliver);
+ * }
+ *
+ * function onLetterReceived(l) {
* letters.push(l);
- * throttler.queue(() => { return makeTheTrip(); });
+ * throttler.queue(deliver);
* }
*/
export class Throttler {
@@ -80,7 +87,7 @@ export class Throttler {
this.queuedPromiseFactory = null;
}
- public queue(promiseFactory: ITask>): TPromise {
+ queue(promiseFactory: ITask>): TPromise {
if (this.activePromise) {
this.queuedPromiseFactory = promiseFactory;
@@ -161,7 +168,7 @@ export class Delayer {
this.task = null;
}
- public trigger(task: ITask, delay: number = this.defaultDelay): TPromise {
+ trigger(task: ITask, delay: number = this.defaultDelay): TPromise {
this.task = task;
this.cancelTimeout();
@@ -188,11 +195,11 @@ export class Delayer {
return this.completionPromise;
}
- public isTriggered(): boolean {
+ isTriggered(): boolean {
return this.timeout !== null;
}
- public cancel(): void {
+ cancel(): void {
this.cancelTimeout();
if (this.completionPromise) {
@@ -226,7 +233,7 @@ export class ThrottledDelayer extends Delayer> {
this.throttler = new Throttler();
}
- public trigger(promiseFactory: ITask>, delay?: number): Promise {
+ trigger(promiseFactory: ITask>, delay?: number): Promise {
return super.trigger(() => this.throttler.queue(promiseFactory), delay);
}
}
@@ -247,7 +254,7 @@ export class PeriodThrottledDelayer extends ThrottledDelayer {
this.periodThrottler = new Throttler();
}
- public trigger(promiseFactory: ITask>, delay?: number): Promise {
+ trigger(promiseFactory: ITask>, delay?: number): Promise {
return super.trigger(() => {
return this.periodThrottler.queue(() => {
return Promise.join([
@@ -415,8 +422,8 @@ export class Limiter {
this.runningPromises = 0;
}
- public queue(promiseFactory: ITask): Promise;
- public queue(promiseFactory: ITask>): TPromise {
+ queue(promiseFactory: ITask): Promise;
+ queue(promiseFactory: ITask>): TPromise {
return new TPromise((c, e, p) => {
this.outstandingPromises.push({
factory: promiseFactory,
@@ -454,19 +461,19 @@ export class TimeoutTimer extends Disposable {
this._token = -1;
}
- public dispose(): void {
+ dispose(): void {
this.cancel();
super.dispose();
}
- public cancel(): void {
+ cancel(): void {
if (this._token !== -1) {
platform.clearTimeout(this._token);
this._token = -1;
}
}
- public cancelAndSet(runner: () => void, timeout:number): void {
+ cancelAndSet(runner: () => void, timeout:number): void {
this.cancel();
this._token = platform.setTimeout(() => {
this._token = -1;
@@ -474,7 +481,7 @@ export class TimeoutTimer extends Disposable {
}, timeout);
}
- public setIfNotSet(runner: () => void, timeout: number): void {
+ setIfNotSet(runner: () => void, timeout: number): void {
if (this._token !== -1) {
// timer is already set
return;
@@ -495,19 +502,19 @@ export class IntervalTimer extends Disposable {
this._token = -1;
}
- public dispose(): void {
+ dispose(): void {
this.cancel();
super.dispose();
}
- public cancel(): void {
+ cancel(): void {
if (this._token !== -1) {
platform.clearInterval(this._token);
this._token = -1;
}
}
- public cancelAndSet(runner: () => void, interval:number): void {
+ cancelAndSet(runner: () => void, interval:number): void {
this.cancel();
this._token = platform.setInterval(() => {
runner();
@@ -532,7 +539,7 @@ export class RunOnceScheduler {
/**
* Dispose RunOnceScheduler
*/
- public dispose(): void {
+ dispose(): void {
this.cancel();
this.runner = null;
}
@@ -540,7 +547,7 @@ export class RunOnceScheduler {
/**
* Cancel current scheduled runner (if any).
*/
- public cancel(): void {
+ cancel(): void {
if (this.isScheduled()) {
platform.clearTimeout(this.timeoutToken);
this.timeoutToken = -1;
@@ -550,14 +557,14 @@ export class RunOnceScheduler {
/**
* Replace runner. If there is a runner already scheduled, the new runner will be called.
*/
- public setRunner(runner: () => void): void {
+ setRunner(runner: () => void): void {
this.runner = runner;
}
/**
* Cancel previous runner (if any) & schedule a new runner.
*/
- public schedule(delay = this.timeout): void {
+ schedule(delay = this.timeout): void {
this.cancel();
this.timeoutToken = platform.setTimeout(this.timeoutHandler, this.timeout);
}
@@ -565,7 +572,7 @@ export class RunOnceScheduler {
/**
* Returns true if scheduled.
*/
- public isScheduled(): boolean {
+ isScheduled(): boolean {
return this.timeoutToken !== -1;
}
diff --git a/src/vs/base/common/errors.ts b/src/vs/base/common/errors.ts
index 0bdcb986ad6..24ac4ae2794 100644
--- a/src/vs/base/common/errors.ts
+++ b/src/vs/base/common/errors.ts
@@ -380,8 +380,10 @@ export function illegalState(name?: string): Error {
}
}
-export function readonly(): Error {
- return new Error('readonly property cannot be changed');
+export function readonly(name?: string): Error {
+ return name
+ ? new Error(`readonly property '${name} cannot be changed'`)
+ : new Error('readonly property cannot be changed');
}
export function loaderError(err: Error): Error {
diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts
index 2fde7589e29..da7be6d1d7a 100644
--- a/src/vs/code/electron-main/window.ts
+++ b/src/vs/code/electron-main/window.ts
@@ -112,7 +112,6 @@ export interface IWindowConfiguration extends ICommandLineArguments {
crashReporter: Electron.CrashReporterStartOptions;
extensionsGallery: {
serviceUrl: string;
- cacheUrl: string;
itemUrl: string;
};
extensionTips: { [id: string]: string; };
diff --git a/src/vs/editor/browser/controller/mouseTarget.ts b/src/vs/editor/browser/controller/mouseTarget.ts
index cc1c12e0182..5e83dd54db9 100644
--- a/src/vs/editor/browser/controller/mouseTarget.ts
+++ b/src/vs/editor/browser/controller/mouseTarget.ts
@@ -194,13 +194,6 @@ export class MouseTargetFactory {
var t = e.target;
var path = this.getClassNamePathTo(t, this._viewHelper.viewDomNode);
- // Is it a cursor ?
- var lineNumberAttribute = t.hasAttribute && t.hasAttribute('lineNumber') ? t.getAttribute('lineNumber') : null;
- var columnAttribute = t.hasAttribute && t.hasAttribute('column') ? t.getAttribute('column') : null;
- if (lineNumberAttribute && columnAttribute) {
- return this.createMouseTargetFromViewCursor(t, parseInt(lineNumberAttribute, 10), parseInt(columnAttribute, 10), mouseColumn);
- }
-
// Is it a content widget?
if (REGEX.IS_CHILD_OF_CONTENT_WIDGETS.test(path) || REGEX.IS_CHILD_OF_OVERFLOWING_CONTENT_WIDGETS.test(path)) {
return this.createMouseTargetFromContentWidgetsChild(t, mouseColumn);
@@ -211,6 +204,13 @@ export class MouseTargetFactory {
return this.createMouseTargetFromOverlayWidgetsChild(t, mouseColumn);
}
+ // Is it a cursor ?
+ var lineNumberAttribute = t.hasAttribute && t.hasAttribute('lineNumber') ? t.getAttribute('lineNumber') : null;
+ var columnAttribute = t.hasAttribute && t.hasAttribute('column') ? t.getAttribute('column') : null;
+ if (lineNumberAttribute && columnAttribute) {
+ return this.createMouseTargetFromViewCursor(t, parseInt(lineNumberAttribute, 10), parseInt(columnAttribute, 10), mouseColumn);
+ }
+
// Is it the textarea cover?
if (REGEX.IS_TEXTAREA_COVER.test(path)) {
if (this._context.configuration.editor.viewInfo.glyphMargin) {
diff --git a/src/vs/editor/browser/editorBrowser.ts b/src/vs/editor/browser/editorBrowser.ts
index bc092bf44c1..bf2f18a3b33 100644
--- a/src/vs/editor/browser/editorBrowser.ts
+++ b/src/vs/editor/browser/editorBrowser.ts
@@ -359,108 +359,14 @@ export interface IEditorContributionDescriptor {
createInstance(instantiationService:IInstantiationService, editor:ICodeEditor): editorCommon.IEditorContribution;
}
-export class ColorZone {
- _colorZoneBrand: void;
- from: number;
- to: number;
- colorId: number;
- position: editorCommon.OverviewRulerLane;
-
- constructor(from:number, to:number, colorId:number, position: editorCommon.OverviewRulerLane) {
- this.from = from|0;
- this.to = to|0;
- this.colorId = colorId|0;
- this.position = position|0;
- }
-}
-
-/**
- * A zone in the overview ruler
- */
-export class OverviewRulerZone {
- _overviewRulerZoneBrand: void;
-
- startLineNumber: number;
- endLineNumber: number;
- position: editorCommon.OverviewRulerLane;
- forceHeight: number;
-
- private _color: string;
- private _darkColor: string;
-
- private _colorZones: ColorZone[];
-
- constructor(
- startLineNumber: number, endLineNumber: number,
- position: editorCommon.OverviewRulerLane,
- forceHeight: number,
- color: string, darkColor: string
- ) {
- this.startLineNumber = startLineNumber;
- this.endLineNumber = endLineNumber;
- this.position = position;
- this.forceHeight = forceHeight;
- this._color = color;
- this._darkColor = darkColor;
- this._colorZones = null;
- }
-
- public getColor(useDarkColor:boolean): string {
- if (useDarkColor) {
- return this._darkColor;
- }
- return this._color;
- }
-
- public equals(other:OverviewRulerZone): boolean {
- return (
- this.startLineNumber === other.startLineNumber
- && this.endLineNumber === other.endLineNumber
- && this.position === other.position
- && this.forceHeight === other.forceHeight
- && this._color === other._color
- && this._darkColor === other._darkColor
- );
- }
-
- public compareTo(other:OverviewRulerZone): number {
- if (this.startLineNumber === other.startLineNumber) {
- if (this.endLineNumber === other.endLineNumber) {
- if (this.forceHeight === other.forceHeight) {
- if (this.position === other.position) {
- if (this._darkColor === other._darkColor) {
- if (this._color === other._color) {
- return 0;
- }
- return this._color < other._color ? -1 : 1;
- }
- return this._darkColor < other._darkColor ? -1 : 1;
- }
- return this.position - other.position;
- }
- return this.forceHeight - other.forceHeight;
- }
- return this.endLineNumber - other.endLineNumber;
- }
- return this.startLineNumber - other.startLineNumber;
- }
-
- public setColorZones(colorZones:ColorZone[]): void {
- this._colorZones = colorZones;
- }
-
- public getColorZones(): ColorZone[] {
- return this._colorZones;
- }
-}
/**
* An overview ruler
*/
export interface IOverviewRuler {
getDomNode(): HTMLElement;
dispose(): void;
- setZones(zones:OverviewRulerZone[]): void;
+ setZones(zones:editorCommon.OverviewRulerZone[]): void;
setLayout(position:editorCommon.OverviewRulerPosition): void;
}
/**
diff --git a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts
index ba6c401e155..125f9e14295 100644
--- a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts
+++ b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts
@@ -6,7 +6,6 @@
import * as themes from 'vs/platform/theme/common/themes';
import * as editorCommon from 'vs/editor/common/editorCommon';
-import {OverviewRulerZone} from 'vs/editor/browser/editorBrowser';
import {ViewPart} from 'vs/editor/browser/view/viewPart';
import {OverviewRulerImpl} from 'vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl';
import {ViewContext} from 'vs/editor/common/view/viewContext';
@@ -28,8 +27,8 @@ export class DecorationsOverviewRuler extends ViewPart {
private _hideCursor:boolean;
private _cursorPositions: Position[];
- private _zonesFromDecorations: OverviewRulerZone[];
- private _zonesFromCursors: OverviewRulerZone[];
+ private _zonesFromDecorations: editorCommon.OverviewRulerZone[];
+ private _zonesFromCursors: editorCommon.OverviewRulerZone[];
constructor(context:ViewContext, scrollHeight:number, getVerticalOffsetForLine:(lineNumber:number)=>number) {
super(context);
@@ -138,14 +137,14 @@ export class DecorationsOverviewRuler extends ViewPart {
return this._overviewRuler.getDomNode();
}
- private _createZonesFromDecorations(): OverviewRulerZone[] {
+ private _createZonesFromDecorations(): editorCommon.OverviewRulerZone[] {
let decorations = this._context.model.getAllDecorations();
- let zones:OverviewRulerZone[] = [];
+ let zones:editorCommon.OverviewRulerZone[] = [];
for (let i = 0, len = decorations.length; i < len; i++) {
let dec = decorations[i];
if (dec.options.overviewRuler.color) {
- zones.push(new OverviewRulerZone(
+ zones.push(new editorCommon.OverviewRulerZone(
dec.range.startLineNumber,
dec.range.endLineNumber,
dec.options.overviewRuler.position,
@@ -159,13 +158,13 @@ export class DecorationsOverviewRuler extends ViewPart {
return zones;
}
- private _createZonesFromCursors(): OverviewRulerZone[] {
- let zones:OverviewRulerZone[] = [];
+ private _createZonesFromCursors(): editorCommon.OverviewRulerZone[] {
+ let zones:editorCommon.OverviewRulerZone[] = [];
for (let i = 0, len = this._cursorPositions.length; i < len; i++) {
let cursor = this._cursorPositions[i];
- zones.push(new OverviewRulerZone(
+ zones.push(new editorCommon.OverviewRulerZone(
cursor.lineNumber,
cursor.lineNumber,
editorCommon.OverviewRulerLane.Full,
@@ -202,7 +201,7 @@ export class DecorationsOverviewRuler extends ViewPart {
}
}
- var allZones:OverviewRulerZone[] = [];
+ var allZones:editorCommon.OverviewRulerZone[] = [];
allZones = allZones.concat(this._zonesFromCursors);
allZones = allZones.concat(this._zonesFromDecorations);
@@ -217,11 +216,11 @@ export class DecorationsOverviewRuler extends ViewPart {
ctx2.lineWidth = 1;
ctx2.strokeStyle = 'rgba(197,197,197,0.8)';
ctx2.moveTo(0, 0);
- ctx2.lineTo(0, this._overviewRuler.getHeight());
+ ctx2.lineTo(0, this._overviewRuler.getPixelHeight());
ctx2.stroke();
ctx2.moveTo(0, 0);
- ctx2.lineTo(this._overviewRuler.getWidth(), 0);
+ ctx2.lineTo(this._overviewRuler.getPixelWidth(), 0);
ctx2.stroke();
}
}
diff --git a/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts b/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts
index a14bb490716..2e0e8fb674c 100644
--- a/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts
+++ b/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts
@@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
-import {IConfigurationChangedEvent, OverviewRulerPosition, IScrollEvent} from 'vs/editor/common/editorCommon';
+import {IConfigurationChangedEvent, OverviewRulerPosition, OverviewRulerZone, IScrollEvent} from 'vs/editor/common/editorCommon';
import {ViewEventHandler} from 'vs/editor/common/viewModel/viewEventHandler';
-import {IOverviewRuler, OverviewRulerZone} from 'vs/editor/browser/editorBrowser';
+import {IOverviewRuler} from 'vs/editor/browser/editorBrowser';
import {OverviewRulerImpl} from 'vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl';
import {ViewContext} from 'vs/editor/common/view/viewContext';
diff --git a/src/vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl.ts b/src/vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl.ts
index c0e3c8c4526..6a7ba584760 100644
--- a/src/vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl.ts
+++ b/src/vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl.ts
@@ -5,269 +5,10 @@
'use strict';
import {StyleMutator} from 'vs/base/browser/styleMutator';
-import {OverviewRulerPosition, OverviewRulerLane} from 'vs/editor/common/editorCommon';
-import {OverviewRulerZone, ColorZone} from 'vs/editor/browser/editorBrowser';
-
-class ZoneManager {
-
- private _getVerticalOffsetForLine:(lineNumber:number)=>number;
- private _zones: OverviewRulerZone[];
- private _colorZonesInvalid: boolean;
- private _lineHeight: number;
- private _width: number;
- private _height: number;
- private _outerHeight: number;
- private _maximumHeight: number;
- private _minimumHeight: number;
- private _useDarkColor: boolean;
-
- private _lastAssignedId;
- private _color2Id: { [color:string]: number; };
- private _id2Color: string[];
-
- constructor(getVerticalOffsetForLine:(lineNumber:number)=>number) {
- this._getVerticalOffsetForLine = getVerticalOffsetForLine;
- this._zones = [];
- this._colorZonesInvalid = false;
- this._lineHeight = 0;
- this._width = 0;
- this._height = 0;
- this._outerHeight = 0;
- this._maximumHeight = 0;
- this._minimumHeight = 0;
- this._useDarkColor = false;
-
- this._lastAssignedId = 0;
- this._color2Id = Object.create(null);
- this._id2Color = [];
- }
-
- public getId2Color(): string[] {
- return this._id2Color;
- }
-
- public setZones(newZones: OverviewRulerZone[]): void {
- newZones.sort((a, b) => a.compareTo(b));
-
- let oldZones = this._zones;
- let oldIndex = 0;
- let oldLength = this._zones.length;
- let newIndex = 0;
- let newLength = newZones.length;
-
- let result: OverviewRulerZone[] = [];
- while (newIndex < newLength) {
- let newZone = newZones[newIndex];
-
- if (oldIndex >= oldLength) {
- result.push(newZone);
- newIndex++;
- } else {
- let oldZone = oldZones[oldIndex];
- let cmp = oldZone.compareTo(newZone);
- if (cmp < 0) {
- oldIndex++;
- } else if (cmp > 0) {
- result.push(newZone);
- newIndex++;
- } else {
- // cmp === 0
- result.push(oldZone);
- oldIndex++;
- newIndex++;
- }
- }
- }
-
- this._zones = result;
- }
-
- public setLineHeight(lineHeight:number): boolean {
- if (this._lineHeight === lineHeight) {
- return false;
- }
- this._lineHeight = lineHeight;
- this._colorZonesInvalid = true;
- return true;
- }
-
- public getWidth(): number {
- return this._width;
- }
-
- public setWidth(width:number): boolean {
- if (this._width === width) {
- return false;
- }
- this._width = width;
- this._colorZonesInvalid = true;
- return true;
- }
-
- public getHeight(): number {
- return this._height;
- }
-
- public setHeight(height:number): boolean {
- if (this._height === height) {
- return false;
- }
- this._height = height;
- this._colorZonesInvalid = true;
- return true;
- }
-
- public getOuterHeight(): number {
- return this._outerHeight;
- }
-
- public setOuterHeight(outerHeight:number): boolean {
- if (this._outerHeight === outerHeight) {
- return false;
- }
- this._outerHeight = outerHeight;
- this._colorZonesInvalid = true;
- return true;
- }
-
- public setMaximumHeight(maximumHeight:number): boolean {
- if (this._maximumHeight === maximumHeight) {
- return false;
- }
- this._maximumHeight = maximumHeight;
- this._colorZonesInvalid = true;
- return true;
- }
-
- public setMinimumHeight(minimumHeight:number): boolean {
- if (this._minimumHeight === minimumHeight) {
- return false;
- }
- this._minimumHeight = minimumHeight;
- this._colorZonesInvalid = true;
- return true;
- }
-
- public setUseDarkColor(useDarkColor:boolean): boolean {
- if (this._useDarkColor === useDarkColor) {
- return false;
- }
- this._useDarkColor = useDarkColor;
- this._colorZonesInvalid = true;
- return true;
- }
-
- public resolveColorZones(): ColorZone[] {
- const colorZonesInvalid = this._colorZonesInvalid;
- const lineHeight = Math.floor(this._lineHeight); // @perf
- const totalHeight = Math.floor(this._height); // @perf
- const maximumHeight = Math.floor(this._maximumHeight); // @perf
- const minimumHeight = Math.floor(this._minimumHeight); // @perf
- const useDarkColor = this._useDarkColor; // @perf
- const outerHeight = Math.floor(this._outerHeight); // @perf
- const heightRatio = totalHeight / outerHeight;
-
- let allColorZones: ColorZone[] = [];
- for (let i = 0, len = this._zones.length; i < len; i++) {
- let zone = this._zones[i];
-
- if (!colorZonesInvalid) {
- let colorZones = zone.getColorZones();
- if (colorZones) {
- for (let j = 0, lenJ = colorZones.length; j < lenJ; j++) {
- allColorZones.push(colorZones[j]);
- }
- continue;
- }
- }
-
- let y1 = Math.floor(this._getVerticalOffsetForLine(zone.startLineNumber));
- let y2 = Math.floor(this._getVerticalOffsetForLine(zone.endLineNumber)) + lineHeight;
-
- y1 = Math.floor(y1 * heightRatio);
- y2 = Math.floor(y2 * heightRatio);
-
- let colorZones: ColorZone[] = [];
- if (zone.forceHeight) {
- y2 = y1 + zone.forceHeight;
- colorZones.push(this.createZone(totalHeight, y1, y2, zone.forceHeight, zone.forceHeight, zone.getColor(useDarkColor), zone.position));
- } else {
- // Figure out if we can render this in one continuous zone
- let zoneLineNumbers = zone.endLineNumber - zone.startLineNumber + 1;
- let zoneMaximumHeight = zoneLineNumbers * maximumHeight;
-
- if (y2 - y1 > zoneMaximumHeight) {
- // We need to draw one zone per line
- for (let lineNumber = zone.startLineNumber; lineNumber <= zone.endLineNumber; lineNumber++) {
- y1 = Math.floor(this._getVerticalOffsetForLine(lineNumber));
- y2 = y1 + lineHeight;
-
- y1 = Math.floor(y1 * heightRatio);
- y2 = Math.floor(y2 * heightRatio);
-
- colorZones.push(this.createZone(totalHeight, y1, y2, minimumHeight, maximumHeight, zone.getColor(useDarkColor), zone.position));
- }
- } else {
- colorZones.push(this.createZone(totalHeight, y1, y2, minimumHeight, zoneMaximumHeight, zone.getColor(useDarkColor), zone.position));
- }
- }
-
- zone.setColorZones(colorZones);
- for (let j = 0, lenJ = colorZones.length; j < lenJ; j++) {
- allColorZones.push(colorZones[j]);
- }
- }
-
- this._colorZonesInvalid = false;
-
- let sortFunc = (a:ColorZone, b:ColorZone) => {
- if (a.colorId === b.colorId) {
- if (a.from === b.from) {
- return a.to - b.to;
- }
- return a.from - b.from;
- }
- return a.colorId - b.colorId;
- };
-
- allColorZones.sort(sortFunc);
- return allColorZones;
- }
-
- public createZone(totalHeight:number, y1:number, y2:number, minimumHeight:number, maximumHeight:number, color:string, position:OverviewRulerLane): ColorZone {
- totalHeight = Math.floor(totalHeight); // @perf
- y1 = Math.floor(y1); // @perf
- y2 = Math.floor(y2); // @perf
- minimumHeight = Math.floor(minimumHeight); // @perf
- maximumHeight = Math.floor(maximumHeight); // @perf
-
- let ycenter = Math.floor((y1 + y2) / 2);
- let halfHeight = (y2 - ycenter);
-
-
- if (halfHeight > maximumHeight / 2) {
- halfHeight = maximumHeight / 2;
- }
- if (halfHeight < minimumHeight / 2) {
- halfHeight = minimumHeight / 2;
- }
-
- if (ycenter - halfHeight < 0) {
- ycenter = halfHeight;
- }
- if (ycenter + halfHeight > totalHeight) {
- ycenter = totalHeight - halfHeight;
- }
-
- let colorId = this._color2Id[color];
- if (!colorId) {
- colorId = (++this._lastAssignedId);
- this._color2Id[color] = colorId;
- this._id2Color[colorId] = color;
- }
- return new ColorZone(ycenter - halfHeight, ycenter + halfHeight, colorId, position);
- }
-}
+import {OverviewRulerPosition, OverviewRulerLane, OverviewRulerZone, ColorZone} from 'vs/editor/common/editorCommon';
+import {IDisposable} from 'vs/base/common/lifecycle';
+import * as browser from 'vs/base/browser/browser';
+import {OverviewZoneManager} from 'vs/editor/common/view/overviewZoneManager';
export class OverviewRulerImpl {
@@ -276,9 +17,11 @@ export class OverviewRulerImpl {
private _canvasLeftOffset: number;
private _domNode: HTMLCanvasElement;
private _lanesCount:number;
- private _zoneManager: ZoneManager;
+ private _zoneManager: OverviewZoneManager;
private _canUseTranslate3d: boolean;
+ private _zoomListener: IDisposable;
+
constructor(canvasLeftOffset:number, cssClassName:string, scrollHeight:number, lineHeight:number, canUseTranslate3d:boolean, minimumHeight:number, maximumHeight:number, getVerticalOffsetForLine:(lineNumber:number)=>number) {
this._canvasLeftOffset = canvasLeftOffset;
@@ -290,17 +33,28 @@ export class OverviewRulerImpl {
this._canUseTranslate3d = canUseTranslate3d;
- this._zoneManager = new ZoneManager(getVerticalOffsetForLine);
+ this._zoneManager = new OverviewZoneManager(getVerticalOffsetForLine);
this._zoneManager.setMinimumHeight(minimumHeight);
this._zoneManager.setMaximumHeight(maximumHeight);
this._zoneManager.setUseDarkColor(false);
- this._zoneManager.setWidth(0);
- this._zoneManager.setHeight(0);
+ this._zoneManager.setDOMWidth(0);
+ this._zoneManager.setDOMHeight(0);
this._zoneManager.setOuterHeight(scrollHeight);
this._zoneManager.setLineHeight(lineHeight);
+
+ this._zoomListener = browser.onDidChangeZoomLevel(() => {
+ this._zoneManager.setPixelRatio(browser.getPixelRatio());
+ this._domNode.style.width = this._zoneManager.getDOMWidth() + 'px';
+ this._domNode.style.height = this._zoneManager.getDOMHeight() + 'px';
+ this._domNode.width = this._zoneManager.getCanvasWidth();
+ this._domNode.height = this._zoneManager.getCanvasHeight();
+ this.render(true);
+ });
+ this._zoneManager.setPixelRatio(browser.getPixelRatio());
}
public dispose(): void {
+ this._zoomListener.dispose();
this._zoneManager = null;
}
@@ -309,12 +63,14 @@ export class OverviewRulerImpl {
StyleMutator.setRight(this._domNode, position.right);
let hasChanged = false;
- hasChanged = this._zoneManager.setWidth(position.width) || hasChanged;
- hasChanged = this._zoneManager.setHeight(position.height) || hasChanged;
+ hasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;
+ hasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;
if (hasChanged) {
- this._domNode.width = this._zoneManager.getWidth();
- this._domNode.height = this._zoneManager.getHeight();
+ this._domNode.style.width = this._zoneManager.getDOMWidth() + 'px';
+ this._domNode.style.height = this._zoneManager.getDOMHeight() + 'px';
+ this._domNode.width = this._zoneManager.getCanvasWidth();
+ this._domNode.height = this._zoneManager.getCanvasHeight();
if (render) {
this.render(true);
@@ -346,12 +102,12 @@ export class OverviewRulerImpl {
return this._domNode;
}
- public getWidth(): number {
- return this._zoneManager.getWidth();
+ public getPixelWidth(): number {
+ return this._zoneManager.getCanvasWidth();
}
- public getHeight(): number {
- return this._zoneManager.getHeight();
+ public getPixelHeight(): number {
+ return this._zoneManager.getCanvasHeight();
}
public setScrollHeight(scrollHeight:number, render:boolean): void {
@@ -395,8 +151,8 @@ export class OverviewRulerImpl {
StyleMutator.setTransform(this._domNode, '');
}
- const width = this._zoneManager.getWidth();
- const height = this._zoneManager.getHeight();
+ const width = this._zoneManager.getCanvasWidth();
+ const height = this._zoneManager.getCanvasHeight();
let colorZones = this._zoneManager.resolveColorZones();
let id2Color = this._zoneManager.getId2Color();
diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts
index 6b11a0ccd5b..b14a431bc10 100644
--- a/src/vs/editor/browser/widget/diffEditorWidget.ts
+++ b/src/vs/editor/browser/widget/diffEditorWidget.ts
@@ -30,7 +30,7 @@ import {Selection} from 'vs/editor/common/core/selection';
interface IEditorDiffDecorations {
decorations:editorCommon.IModelDeltaDecoration[];
- overviewZones:editorBrowser.OverviewRulerZone[];
+ overviewZones:editorCommon.OverviewRulerZone[];
}
interface IEditorDiffDecorationsWithZones extends IEditorDiffDecorations {
@@ -1476,7 +1476,7 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
result.decorations.push(createDecoration(lineChange.originalStartLineNumber, 1, lineChange.originalEndLineNumber, Number.MAX_VALUE, 'char-delete', true));
}
- result.overviewZones.push(new editorBrowser.OverviewRulerZone(
+ result.overviewZones.push(new editorCommon.OverviewRulerZone(
lineChange.originalStartLineNumber,
lineChange.originalEndLineNumber,
editorCommon.OverviewRulerLane.Full,
@@ -1541,7 +1541,7 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
if (!isChangeOrDelete(lineChange) || !lineChange.charChanges) {
result.decorations.push(createDecoration(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Number.MAX_VALUE, 'char-insert', true));
}
- result.overviewZones.push(new editorBrowser.OverviewRulerZone(
+ result.overviewZones.push(new editorCommon.OverviewRulerZone(
lineChange.modifiedStartLineNumber,
lineChange.modifiedEndLineNumber,
editorCommon.OverviewRulerLane.Full,
@@ -1656,7 +1656,7 @@ class DiffEdtorWidgetInline extends DiffEditorWidgetStyle implements IDiffEditor
// Add overview zones in the overview ruler
if (isChangeOrDelete(lineChange)) {
- result.overviewZones.push(new editorBrowser.OverviewRulerZone(
+ result.overviewZones.push(new editorCommon.OverviewRulerZone(
lineChange.originalStartLineNumber,
lineChange.originalEndLineNumber,
editorCommon.OverviewRulerLane.Full,
@@ -1694,7 +1694,7 @@ class DiffEdtorWidgetInline extends DiffEditorWidgetStyle implements IDiffEditor
if (isChangeOrInsert(lineChange)) {
result.decorations.push(createDecoration(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Number.MAX_VALUE, 'line-insert', true));
- result.overviewZones.push(new editorBrowser.OverviewRulerZone(
+ result.overviewZones.push(new editorCommon.OverviewRulerZone(
lineChange.modifiedStartLineNumber,
lineChange.modifiedEndLineNumber,
editorCommon.OverviewRulerLane.Full,
diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts
index 3022cdf5049..c4b1689700b 100644
--- a/src/vs/editor/common/config/commonEditorConfig.ts
+++ b/src/vs/editor/common/config/commonEditorConfig.ts
@@ -672,10 +672,10 @@ let editorConfiguration:IConfigurationNode = {
'default': DEFAULT_TRIM_AUTO_WHITESPACE,
'description': nls.localize('trimAutoWhitespace', "Remove trailing auto inserted whitespace")
},
- 'editor.dismissPeekOnEsc' : {
+ 'editor.stablePeek' : {
'type': 'boolean',
- 'default': true,
- 'description': nls.localize('dismissPeekOnEsc', "Close peek editor when pressing ESC")
+ 'default': false,
+ 'description': nls.localize('stablePeek', "Do not close peek editors when double clicking their content or when hitting Escape.")
},
'diffEditor.renderSideBySide' : {
'type': 'boolean',
diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts
index c5ac18d23a5..ebee3689655 100644
--- a/src/vs/editor/common/editorCommon.ts
+++ b/src/vs/editor/common/editorCommon.ts
@@ -3600,3 +3600,100 @@ export function cursorStyleToString(cursorStyle:TextEditorCursorStyle): string {
throw new Error('cursorStyleToString: Unknown cursorStyle');
}
}
+
+export class ColorZone {
+ _colorZoneBrand: void;
+
+ from: number;
+ to: number;
+ colorId: number;
+ position: OverviewRulerLane;
+
+ constructor(from:number, to:number, colorId:number, position: OverviewRulerLane) {
+ this.from = from|0;
+ this.to = to|0;
+ this.colorId = colorId|0;
+ this.position = position|0;
+ }
+}
+
+/**
+ * A zone in the overview ruler
+ */
+export class OverviewRulerZone {
+ _overviewRulerZoneBrand: void;
+
+ startLineNumber: number;
+ endLineNumber: number;
+ position: OverviewRulerLane;
+ forceHeight: number;
+
+ private _color: string;
+ private _darkColor: string;
+
+ private _colorZones: ColorZone[];
+
+ constructor(
+ startLineNumber: number, endLineNumber: number,
+ position: OverviewRulerLane,
+ forceHeight: number,
+ color: string, darkColor: string
+ ) {
+ this.startLineNumber = startLineNumber;
+ this.endLineNumber = endLineNumber;
+ this.position = position;
+ this.forceHeight = forceHeight;
+ this._color = color;
+ this._darkColor = darkColor;
+ this._colorZones = null;
+ }
+
+ public getColor(useDarkColor:boolean): string {
+ if (useDarkColor) {
+ return this._darkColor;
+ }
+ return this._color;
+ }
+
+ public equals(other:OverviewRulerZone): boolean {
+ return (
+ this.startLineNumber === other.startLineNumber
+ && this.endLineNumber === other.endLineNumber
+ && this.position === other.position
+ && this.forceHeight === other.forceHeight
+ && this._color === other._color
+ && this._darkColor === other._darkColor
+ );
+ }
+
+ public compareTo(other:OverviewRulerZone): number {
+ if (this.startLineNumber === other.startLineNumber) {
+ if (this.endLineNumber === other.endLineNumber) {
+ if (this.forceHeight === other.forceHeight) {
+ if (this.position === other.position) {
+ if (this._darkColor === other._darkColor) {
+ if (this._color === other._color) {
+ return 0;
+ }
+ return this._color < other._color ? -1 : 1;
+ }
+ return this._darkColor < other._darkColor ? -1 : 1;
+ }
+ return this.position - other.position;
+ }
+ return this.forceHeight - other.forceHeight;
+ }
+ return this.endLineNumber - other.endLineNumber;
+ }
+ return this.startLineNumber - other.startLineNumber;
+ }
+
+ public setColorZones(colorZones:ColorZone[]): void {
+ this._colorZones = colorZones;
+ }
+
+ public getColorZones(): ColorZone[] {
+ return this._colorZones;
+ }
+}
+
diff --git a/src/vs/editor/common/modes/abstractMode.ts b/src/vs/editor/common/modes/abstractMode.ts
index 226303aa660..6b579ce7065 100644
--- a/src/vs/editor/common/modes/abstractMode.ts
+++ b/src/vs/editor/common/modes/abstractMode.ts
@@ -230,7 +230,7 @@ export class FrankensteinMode extends AbstractMode {
super(descriptor.id);
if (editorWorkerService) {
- modes.SuggestRegistry.register(this.getId(), new TextualSuggestSupport(this.getId(), editorWorkerService, configurationService));
+ modes.SuggestRegistry.register(this.getId(), new TextualSuggestSupport(this.getId(), editorWorkerService, configurationService), true);
}
}
}
diff --git a/src/vs/editor/common/modes/languageFeatureRegistry.ts b/src/vs/editor/common/modes/languageFeatureRegistry.ts
index 100d36753a9..de8864558a6 100644
--- a/src/vs/editor/common/modes/languageFeatureRegistry.ts
+++ b/src/vs/editor/common/modes/languageFeatureRegistry.ts
@@ -13,6 +13,7 @@ import {LanguageSelector, score} from 'vs/editor/common/modes/languageSelector';
interface Entry {
selector: LanguageSelector;
provider: T;
+ isBuiltin: boolean;
_score: number;
_time: number;
}
@@ -30,11 +31,12 @@ export default class LanguageFeatureRegistry {
return this._onDidChange.event;
}
- register(selector: LanguageSelector, provider: T): IDisposable {
+ register(selector: LanguageSelector, provider: T, isBuiltin = false): IDisposable {
let entry: Entry = {
selector,
provider,
+ isBuiltin,
_score: -1,
_time: this._clock++
};
@@ -141,6 +143,10 @@ export default class LanguageFeatureRegistry {
for (let entry of this._entries) {
entry._score = score(entry.selector, model.uri, model.getModeId());
+ if (entry.isBuiltin && entry._score > 0) {
+ entry._score = .5;
+ entry._time = -1;
+ }
}
// needs sorting
diff --git a/src/vs/editor/common/view/overviewZoneManager.ts b/src/vs/editor/common/view/overviewZoneManager.ts
new file mode 100644
index 00000000000..9c19fe5ff19
--- /dev/null
+++ b/src/vs/editor/common/view/overviewZoneManager.ts
@@ -0,0 +1,288 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+'use strict';
+
+import {OverviewRulerLane, OverviewRulerZone, ColorZone} from 'vs/editor/common/editorCommon';
+
+export class OverviewZoneManager {
+
+ private _getVerticalOffsetForLine:(lineNumber:number)=>number;
+ private _zones: OverviewRulerZone[];
+ private _colorZonesInvalid: boolean;
+ private _lineHeight: number;
+ private _domWidth: number;
+ private _domHeight: number;
+ private _outerHeight: number;
+ private _maximumHeight: number;
+ private _minimumHeight: number;
+ private _useDarkColor: boolean;
+ private _pixelRatio: number;
+
+ private _lastAssignedId;
+ private _color2Id: { [color:string]: number; };
+ private _id2Color: string[];
+
+ constructor(getVerticalOffsetForLine:(lineNumber:number)=>number) {
+ this._getVerticalOffsetForLine = getVerticalOffsetForLine;
+ this._zones = [];
+ this._colorZonesInvalid = false;
+ this._lineHeight = 0;
+ this._domWidth = 0;
+ this._domHeight = 0;
+ this._outerHeight = 0;
+ this._maximumHeight = 0;
+ this._minimumHeight = 0;
+ this._useDarkColor = false;
+ this._pixelRatio = 1;
+
+ this._lastAssignedId = 0;
+ this._color2Id = Object.create(null);
+ this._id2Color = [];
+ }
+
+ public getId2Color(): string[] {
+ return this._id2Color;
+ }
+
+ public setZones(newZones: OverviewRulerZone[]): void {
+ newZones.sort((a, b) => a.compareTo(b));
+
+ let oldZones = this._zones;
+ let oldIndex = 0;
+ let oldLength = this._zones.length;
+ let newIndex = 0;
+ let newLength = newZones.length;
+
+ let result: OverviewRulerZone[] = [];
+ while (newIndex < newLength) {
+ let newZone = newZones[newIndex];
+
+ if (oldIndex >= oldLength) {
+ result.push(newZone);
+ newIndex++;
+ } else {
+ let oldZone = oldZones[oldIndex];
+ let cmp = oldZone.compareTo(newZone);
+ if (cmp < 0) {
+ oldIndex++;
+ } else if (cmp > 0) {
+ result.push(newZone);
+ newIndex++;
+ } else {
+ // cmp === 0
+ result.push(oldZone);
+ oldIndex++;
+ newIndex++;
+ }
+ }
+ }
+
+ this._zones = result;
+ }
+
+ public setLineHeight(lineHeight:number): boolean {
+ if (this._lineHeight === lineHeight) {
+ return false;
+ }
+ this._lineHeight = lineHeight;
+ this._colorZonesInvalid = true;
+ return true;
+ }
+
+ public setPixelRatio(pixelRatio:number): void {
+ this._pixelRatio = pixelRatio;
+ this._colorZonesInvalid = true;
+ }
+
+ public getDOMWidth(): number {
+ return this._domWidth;
+ }
+
+ public getCanvasWidth(): number {
+ return this._domWidth * this._pixelRatio;
+ }
+
+ public setDOMWidth(width:number): boolean {
+ if (this._domWidth === width) {
+ return false;
+ }
+ this._domWidth = width;
+ this._colorZonesInvalid = true;
+ return true;
+ }
+
+ public getDOMHeight(): number {
+ return this._domHeight;
+ }
+
+ public getCanvasHeight(): number {
+ return this._domHeight * this._pixelRatio;
+ }
+
+ public setDOMHeight(height:number): boolean {
+ if (this._domHeight === height) {
+ return false;
+ }
+ this._domHeight = height;
+ this._colorZonesInvalid = true;
+ return true;
+ }
+
+ public getOuterHeight(): number {
+ return this._outerHeight;
+ }
+
+ public setOuterHeight(outerHeight:number): boolean {
+ if (this._outerHeight === outerHeight) {
+ return false;
+ }
+ this._outerHeight = outerHeight;
+ this._colorZonesInvalid = true;
+ return true;
+ }
+
+ public setMaximumHeight(maximumHeight:number): boolean {
+ if (this._maximumHeight === maximumHeight) {
+ return false;
+ }
+ this._maximumHeight = maximumHeight;
+ this._colorZonesInvalid = true;
+ return true;
+ }
+
+ public setMinimumHeight(minimumHeight:number): boolean {
+ if (this._minimumHeight === minimumHeight) {
+ return false;
+ }
+ this._minimumHeight = minimumHeight;
+ this._colorZonesInvalid = true;
+ return true;
+ }
+
+ public setUseDarkColor(useDarkColor:boolean): boolean {
+ if (this._useDarkColor === useDarkColor) {
+ return false;
+ }
+ this._useDarkColor = useDarkColor;
+ this._colorZonesInvalid = true;
+ return true;
+ }
+
+ public resolveColorZones(): ColorZone[] {
+ const colorZonesInvalid = this._colorZonesInvalid;
+ const lineHeight = Math.floor(this._lineHeight); // @perf
+ const totalHeight = Math.floor(this.getCanvasHeight()); // @perf
+ const maximumHeight = Math.floor(this._maximumHeight * this._pixelRatio); // @perf
+ const minimumHeight = Math.floor(this._minimumHeight * this._pixelRatio); // @perf
+ const useDarkColor = this._useDarkColor; // @perf
+ const outerHeight = Math.floor(this._outerHeight); // @perf
+ const heightRatio = totalHeight / outerHeight;
+
+ let allColorZones: ColorZone[] = [];
+ for (let i = 0, len = this._zones.length; i < len; i++) {
+ let zone = this._zones[i];
+
+ if (!colorZonesInvalid) {
+ let colorZones = zone.getColorZones();
+ if (colorZones) {
+ for (let j = 0, lenJ = colorZones.length; j < lenJ; j++) {
+ allColorZones.push(colorZones[j]);
+ }
+ continue;
+ }
+ }
+
+ let colorZones: ColorZone[] = [];
+ if (zone.forceHeight) {
+ let forcedHeight = Math.floor(zone.forceHeight * this._pixelRatio);
+
+ let y1 = Math.floor(this._getVerticalOffsetForLine(zone.startLineNumber));
+ y1 = Math.floor(y1 * heightRatio);
+
+ let y2 = y1 + forcedHeight;
+ colorZones.push(this.createZone(totalHeight, y1, y2, forcedHeight, forcedHeight, zone.getColor(useDarkColor), zone.position));
+ } else {
+ let y1 = Math.floor(this._getVerticalOffsetForLine(zone.startLineNumber));
+ let y2 = Math.floor(this._getVerticalOffsetForLine(zone.endLineNumber)) + lineHeight;
+
+ y1 = Math.floor(y1 * heightRatio);
+ y2 = Math.floor(y2 * heightRatio);
+
+ // Figure out if we can render this in one continuous zone
+ let zoneLineNumbers = zone.endLineNumber - zone.startLineNumber + 1;
+ let zoneMaximumHeight = zoneLineNumbers * maximumHeight;
+
+ if (y2 - y1 > zoneMaximumHeight) {
+ // We need to draw one zone per line
+ for (let lineNumber = zone.startLineNumber; lineNumber <= zone.endLineNumber; lineNumber++) {
+ y1 = Math.floor(this._getVerticalOffsetForLine(lineNumber));
+ y2 = y1 + lineHeight;
+
+ y1 = Math.floor(y1 * heightRatio);
+ y2 = Math.floor(y2 * heightRatio);
+
+ colorZones.push(this.createZone(totalHeight, y1, y2, minimumHeight, maximumHeight, zone.getColor(useDarkColor), zone.position));
+ }
+ } else {
+ colorZones.push(this.createZone(totalHeight, y1, y2, minimumHeight, zoneMaximumHeight, zone.getColor(useDarkColor), zone.position));
+ }
+ }
+
+ zone.setColorZones(colorZones);
+ for (let j = 0, lenJ = colorZones.length; j < lenJ; j++) {
+ allColorZones.push(colorZones[j]);
+ }
+ }
+
+ this._colorZonesInvalid = false;
+
+ let sortFunc = (a:ColorZone, b:ColorZone) => {
+ if (a.colorId === b.colorId) {
+ if (a.from === b.from) {
+ return a.to - b.to;
+ }
+ return a.from - b.from;
+ }
+ return a.colorId - b.colorId;
+ };
+
+ allColorZones.sort(sortFunc);
+ return allColorZones;
+ }
+
+ public createZone(totalHeight:number, y1:number, y2:number, minimumHeight:number, maximumHeight:number, color:string, position:OverviewRulerLane): ColorZone {
+ totalHeight = Math.floor(totalHeight); // @perf
+ y1 = Math.floor(y1); // @perf
+ y2 = Math.floor(y2); // @perf
+ minimumHeight = Math.floor(minimumHeight); // @perf
+ maximumHeight = Math.floor(maximumHeight); // @perf
+
+ let ycenter = Math.floor((y1 + y2) / 2);
+ let halfHeight = (y2 - ycenter);
+
+
+ if (halfHeight > maximumHeight / 2) {
+ halfHeight = maximumHeight / 2;
+ }
+ if (halfHeight < minimumHeight / 2) {
+ halfHeight = minimumHeight / 2;
+ }
+
+ if (ycenter - halfHeight < 0) {
+ ycenter = halfHeight;
+ }
+ if (ycenter + halfHeight > totalHeight) {
+ ycenter = totalHeight - halfHeight;
+ }
+
+ let colorId = this._color2Id[color];
+ if (!colorId) {
+ colorId = (++this._lastAssignedId);
+ this._color2Id[color] = colorId;
+ this._id2Color[colorId] = color;
+ }
+ return new ColorZone(ycenter - halfHeight, ycenter + halfHeight, colorId, position);
+ }
+}
diff --git a/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts b/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts
index e87587157b3..a56c0a0b117 100644
--- a/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts
+++ b/src/vs/editor/contrib/referenceSearch/browser/referenceSearch.ts
@@ -169,7 +169,7 @@ KeybindingsRegistry.registerCommandDesc({
weight: CommonEditorRegistry.commandWeight(50),
primary: KeyCode.Escape,
secondary: [KeyMod.Shift | KeyCode.Escape],
- when: KbExpr.and(KbExpr.has(ctxReferenceSearchVisible), KbExpr.has('config.editor.dismissPeekOnEsc')),
+ when: KbExpr.and(KbExpr.has(ctxReferenceSearchVisible), KbExpr.not('config.editor.stablePeek')),
handler: closeActiveReferenceSearch
});
@@ -178,6 +178,6 @@ KeybindingsRegistry.registerCommandDesc({
weight: CommonEditorRegistry.commandWeight(-101),
primary: KeyCode.Escape,
secondary: [KeyMod.Shift | KeyCode.Escape],
- when: KbExpr.and(KbExpr.has(ReferenceWidget.INNER_EDITOR_CONTEXT_KEY), KbExpr.has('config.editor.dismissPeekOnEsc')),
+ when: KbExpr.and(KbExpr.has(ReferenceWidget.INNER_EDITOR_CONTEXT_KEY), KbExpr.not('config.editor.stablePeek')),
handler: closeActiveReferenceSearch
});
diff --git a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts
index c06b4da83c7..844513d32e5 100644
--- a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts
+++ b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts
@@ -14,6 +14,7 @@ import {IInstantiationService, optional} from 'vs/platform/instantiation/common/
import {IKeybindingContextKey, IKeybindingService} from 'vs/platform/keybinding/common/keybindingService';
import {IMessageService} from 'vs/platform/message/common/message';
import {ITelemetryService} from 'vs/platform/telemetry/common/telemetry';
+import {IConfigurationService, getConfigurationValue} from 'vs/platform/configuration/common/configuration';
import {IWorkspaceContextService} from 'vs/platform/workspace/common/workspace';
import {IStorageService} from 'vs/platform/storage/common/storage';
import * as editorCommon from 'vs/editor/common/editorCommon';
@@ -57,6 +58,7 @@ export class ReferencesController implements editorCommon.IEditorContribution {
@IInstantiationService private _instantiationService: IInstantiationService,
@IWorkspaceContextService private _contextService: IWorkspaceContextService,
@IStorageService private _storageService: IStorageService,
+ @IConfigurationService private _configurationService: IConfigurationService,
@optional(IPeekViewService) private _peekViewService: IPeekViewService
) {
this._editor = editor;
@@ -112,8 +114,15 @@ export class ReferencesController implements editorCommon.IEditorContribution {
this._disposables.push(this._widget.onDidSelectReference(event => {
let {element, kind} = event;
switch (kind) {
- case 'side':
case 'open':
+ if (event.source === 'editor'
+ && getConfigurationValue(this._configurationService.getConfiguration(), 'editor.stablePeek', false)) {
+
+ // when stable peek is configured we don't close
+ // the peek window on selecting the editor
+ break;
+ }
+ case 'side':
this._openReference(element, kind === 'side');
break;
case 'goto':
diff --git a/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts b/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts
index 6ccfe122793..f107ac84a32 100644
--- a/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts
+++ b/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts
@@ -453,6 +453,7 @@ export interface LayoutData {
export interface SelectionEvent {
kind: 'goto' | 'show' | 'side' | 'open';
+ source: 'editor' | 'tree' | 'title';
element: OneReference;
}
@@ -513,7 +514,8 @@ export class ReferenceWidget extends PeekViewWidget {
if (this._preview && this._preview.getModel()) {
this._onDidSelectReference.fire({
element: this._getFocusedReference(),
- kind: e.ctrlKey || e.metaKey ? 'side' : 'open'
+ kind: e.ctrlKey || e.metaKey ? 'side' : 'open',
+ source: 'title'
});
}
}
@@ -633,18 +635,18 @@ export class ReferenceWidget extends PeekViewWidget {
this._disposeOnNewModel.push(this._tree.addListener2(Controller.Events.FOCUSED, (element) => {
if (element instanceof OneReference) {
this._revealReference(element);
- this._onDidSelectReference.fire({ element, kind: 'show' });
+ this._onDidSelectReference.fire({ element, kind: 'show', source: 'tree' });
}
}));
this._disposeOnNewModel.push(this._tree.addListener2(Controller.Events.SELECTED, (element: any) => {
if (element instanceof OneReference) {
this._revealReference(element);
- this._onDidSelectReference.fire({ element, kind: 'goto' });
+ this._onDidSelectReference.fire({ element, kind: 'goto', source: 'tree' });
}
}));
this._disposeOnNewModel.push(this._tree.addListener2(Controller.Events.OPEN_TO_SIDE, (element: any) => {
if (element instanceof OneReference) {
- this._onDidSelectReference.fire({ element, kind: 'side' });
+ this._onDidSelectReference.fire({ element, kind: 'side', source: 'tree' });
}
}));
@@ -653,7 +655,8 @@ export class ReferenceWidget extends PeekViewWidget {
if (e.event.detail === 2) {
this._onDidSelectReference.fire({
element: this._getFocusedReference(),
- kind: (e.event.ctrlKey || e.event.metaKey) ? 'side' : 'open'
+ kind: (e.event.ctrlKey || e.event.metaKey) ? 'side' : 'open',
+ source: 'editor'
});
}
}));
diff --git a/src/vs/editor/contrib/suggest/browser/completionModel.ts b/src/vs/editor/contrib/suggest/browser/completionModel.ts
index 809e9a24bf6..9382d9256a6 100644
--- a/src/vs/editor/contrib/suggest/browser/completionModel.ts
+++ b/src/vs/editor/contrib/suggest/browser/completionModel.ts
@@ -124,6 +124,11 @@ export class CompletionModel {
item.highlights = filter(word, suggestion.label);
match = item.highlights !== null;
+ // no match on label -> check on codeSnippet
+ if (!match && suggestion.codeSnippet !== suggestion.label) {
+ match = !isFalsyOrEmpty((filter(word, suggestion.codeSnippet.replace(/{{.+?}}/g, '')))); // filters {{text}}-snippet syntax
+ }
+
// no match on label nor codeSnippet -> check on filterText
if(!match && typeof suggestion.filterText === 'string') {
match = !isFalsyOrEmpty(filter(word, suggestion.filterText));
diff --git a/src/vs/editor/test/common/view/overviewZoneManager.test.ts b/src/vs/editor/test/common/view/overviewZoneManager.test.ts
new file mode 100644
index 00000000000..522b3241e47
--- /dev/null
+++ b/src/vs/editor/test/common/view/overviewZoneManager.test.ts
@@ -0,0 +1,100 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+'use strict';
+
+import * as assert from 'assert';
+import {OverviewRulerLane, OverviewRulerZone, ColorZone} from 'vs/editor/common/editorCommon';
+import {OverviewZoneManager} from 'vs/editor/common/view/overviewZoneManager';
+
+suite('Editor View - OverviewZoneManager', () => {
+
+ test('pixel ratio 1, dom height 600', () => {
+ const LINE_COUNT = 50;
+ const LINE_HEIGHT = 20;
+ let manager = new OverviewZoneManager((lineNumber) => LINE_HEIGHT * lineNumber);
+ manager.setMinimumHeight(6);
+ manager.setMaximumHeight(6);
+ manager.setUseDarkColor(false);
+ manager.setDOMWidth(30);
+ manager.setDOMHeight(600);
+ manager.setOuterHeight(LINE_COUNT * LINE_HEIGHT);
+ manager.setLineHeight(LINE_HEIGHT);
+ manager.setPixelRatio(1);
+
+ manager.setZones([
+ new OverviewRulerZone(1, 1, OverviewRulerLane.Full, 10, '1', '1'),
+ new OverviewRulerZone(10, 10, OverviewRulerLane.Full, 0, '2', '2'),
+ new OverviewRulerZone(30, 31, OverviewRulerLane.Full, 0, '3', '3'),
+ new OverviewRulerZone(50, 50, OverviewRulerLane.Full, 0, '4', '4'),
+ ]);
+
+ // one line = 12, but cap is at 6
+ assert.deepEqual(manager.resolveColorZones(), [
+ new ColorZone(12, 22, 1, OverviewRulerLane.Full), // forced height of 10
+ new ColorZone(123, 129, 2, OverviewRulerLane.Full), // 120 -> 132
+ new ColorZone(363, 369, 3, OverviewRulerLane.Full), // 360 -> 372 [360 -> 384]
+ new ColorZone(375, 381, 3, OverviewRulerLane.Full), // 372 -> 384 [360 -> 384]
+ new ColorZone(594, 600, 4, OverviewRulerLane.Full), // 588 -> 600
+ ]);
+ });
+
+ test('pixel ratio 1, dom height 300', () => {
+ const LINE_COUNT = 50;
+ const LINE_HEIGHT = 20;
+ let manager = new OverviewZoneManager((lineNumber) => LINE_HEIGHT * lineNumber);
+ manager.setMinimumHeight(6);
+ manager.setMaximumHeight(6);
+ manager.setUseDarkColor(false);
+ manager.setDOMWidth(30);
+ manager.setDOMHeight(300);
+ manager.setOuterHeight(LINE_COUNT * LINE_HEIGHT);
+ manager.setLineHeight(LINE_HEIGHT);
+ manager.setPixelRatio(1);
+
+ manager.setZones([
+ new OverviewRulerZone(1, 1, OverviewRulerLane.Full, 10, '1', '1'),
+ new OverviewRulerZone(10, 10, OverviewRulerLane.Full, 0, '2', '2'),
+ new OverviewRulerZone(30, 31, OverviewRulerLane.Full, 0, '3', '3'),
+ new OverviewRulerZone(50, 50, OverviewRulerLane.Full, 0, '4', '4'),
+ ]);
+
+ // one line = 6, cap is at 6
+ assert.deepEqual(manager.resolveColorZones(), [
+ new ColorZone(6, 16, 1, OverviewRulerLane.Full), // forced height of 10
+ new ColorZone(60, 66, 2, OverviewRulerLane.Full), // 60 -> 66
+ new ColorZone(180, 192, 3, OverviewRulerLane.Full), // 180 -> 192
+ new ColorZone(294, 300, 4, OverviewRulerLane.Full), // 294 -> 300
+ ]);
+ });
+
+ test('pixel ratio 2, dom height 300', () => {
+ const LINE_COUNT = 50;
+ const LINE_HEIGHT = 20;
+ let manager = new OverviewZoneManager((lineNumber) => LINE_HEIGHT * lineNumber);
+ manager.setMinimumHeight(6);
+ manager.setMaximumHeight(6);
+ manager.setUseDarkColor(false);
+ manager.setDOMWidth(30);
+ manager.setDOMHeight(300);
+ manager.setOuterHeight(LINE_COUNT * LINE_HEIGHT);
+ manager.setLineHeight(LINE_HEIGHT);
+ manager.setPixelRatio(2);
+
+ manager.setZones([
+ new OverviewRulerZone(1, 1, OverviewRulerLane.Full, 10, '1', '1'),
+ new OverviewRulerZone(10, 10, OverviewRulerLane.Full, 0, '2', '2'),
+ new OverviewRulerZone(30, 31, OverviewRulerLane.Full, 0, '3', '3'),
+ new OverviewRulerZone(50, 50, OverviewRulerLane.Full, 0, '4', '4'),
+ ]);
+
+ // one line = 6, cap is at 12
+ assert.deepEqual(manager.resolveColorZones(), [
+ new ColorZone(12, 32, 1, OverviewRulerLane.Full), // forced height of 10 => forced height of 20
+ new ColorZone(120, 132, 2, OverviewRulerLane.Full), // 120 -> 132
+ new ColorZone(360, 384, 3, OverviewRulerLane.Full), // 360 -> 384
+ new ColorZone(588, 600, 4, OverviewRulerLane.Full), // 588 -> 600
+ ]);
+ });
+});
diff --git a/src/vs/languages/css/common/css.ts b/src/vs/languages/css/common/css.ts
index e36814874bf..ee6d165c445 100644
--- a/src/vs/languages/css/common/css.ts
+++ b/src/vs/languages/css/common/css.ts
@@ -331,31 +331,31 @@ export class CSSMode extends AbstractMode {
provideDocumentHighlights: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentHighlights(model.uri, position));
}
- });
+ }, true);
modes.HoverProviderRegistry.register(this.getId(), {
provideHover: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideHover(model.uri, position));
}
- });
+ }, true);
modes.ReferenceProviderRegistry.register(this.getId(), {
provideReferences: (model, position, context, token): Thenable => {
return wireCancellationToken(token, this._provideReferences(model.uri, position));
}
- });
+ }, true);
modes.DocumentSymbolProviderRegistry.register(this.getId(), {
provideDocumentSymbols: (model, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentSymbols(model.uri));
}
- });
+ }, true);
modes.DefinitionProviderRegistry.register(this.getId(), {
provideDefinition: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideDefinition(model.uri, position));
}
- });
+ }, true);
modes.SuggestRegistry.register(this.getId(), {
triggerCharacters: [' ', ':'],
@@ -363,13 +363,13 @@ export class CSSMode extends AbstractMode {
provideCompletionItems: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideCompletionItems(model.uri, position));
}
- });
+ }, true);
modes.CodeActionProviderRegistry.register(this.getId(), {
provideCodeActions: (model, range, token): Thenable => {
return wireCancellationToken(token, this._provideCodeActions(model.uri, range));
}
- });
+ }, true);
}
public creationDone(): void {
diff --git a/src/vs/languages/handlebars/common/handlebars.ts b/src/vs/languages/handlebars/common/handlebars.ts
index 35e0562855c..289fee3277c 100644
--- a/src/vs/languages/handlebars/common/handlebars.ts
+++ b/src/vs/languages/handlebars/common/handlebars.ts
@@ -121,13 +121,13 @@ export class HandlebarsMode extends htmlMode.HTMLMode {
provideHover: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideHover(model.uri, position));
}
- });
+ }, true);
modes.ReferenceProviderRegistry.register(this.getId(), {
provideReferences: (model, position, context, token): Thenable => {
return wireCancellationToken(token, this._provideReferences(model.uri, position, context));
}
- });
+ }, true);
modes.SuggestRegistry.register(this.getId(), {
triggerCharacters: ['.', ':', '<', '"', '=', '/'],
@@ -135,19 +135,19 @@ export class HandlebarsMode extends htmlMode.HTMLMode {
provideCompletionItems: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideCompletionItems(model.uri, position));
}
- });
+ }, true);
modes.DocumentHighlightProviderRegistry.register(this.getId(), {
provideDocumentHighlights: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentHighlights(model.uri, position));
}
- });
+ }, true);
modes.LinkProviderRegistry.register(this.getId(), {
provideLinks: (model, token): Thenable => {
return wireCancellationToken(token, this._provideLinks(model.uri));
}
- });
+ }, true);
}
protected _createRichEditSupport(): modes.IRichEditSupport {
diff --git a/src/vs/languages/html/common/html.contribution.ts b/src/vs/languages/html/common/html.contribution.ts
index 83652a91437..ebe40d140d6 100644
--- a/src/vs/languages/html/common/html.contribution.ts
+++ b/src/vs/languages/html/common/html.contribution.ts
@@ -11,7 +11,7 @@ import ConfigurationRegistry = require('vs/platform/configuration/common/configu
ModesRegistry.registerCompatMode({
id: 'html',
- extensions: ['.html', '.htm', '.shtml', '.mdoc', '.jsp', '.asp', '.aspx', '.jshtm'],
+ extensions: ['.html', '.htm', '.shtml', '.xhtml', '.mdoc', '.jsp', '.asp', '.aspx', '.jshtm'],
aliases: ['HTML', 'htm', 'html', 'xhtml'],
mimetypes: ['text/html', 'text/x-jshtm', 'text/template', 'text/ng-template'],
moduleId: 'vs/languages/html/common/html',
@@ -33,8 +33,8 @@ configurationRegistry.registerConfiguration({
},
'html.format.unformatted': {
'type': ['string', 'null'],
- 'default': null,
- 'description': nls.localize('format.unformatted', "List of tags, comma separated, that shouldn't be reformatted. 'null' defaults to all inline tags."),
+ 'default': 'a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, script, select, small, span, strong, sub, sup, textarea, tt, var',
+ 'description': nls.localize('format.unformatted', "List of tags, comma separated, that shouldn't be reformatted. 'null' defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content."),
},
'html.format.indentInnerHtml': {
'type': 'boolean',
@@ -63,7 +63,7 @@ configurationRegistry.registerConfiguration({
},
'html.format.extraLiners': {
'type': ['string', 'null'],
- 'default': null,
+ 'default': 'head, body, /html',
'description': nls.localize('format.extraLiners', "List of tags, comma separated, that should have an extra newline before them. 'null' defaults to \"head, body, /html\"."),
},
}
diff --git a/src/vs/languages/html/common/html.ts b/src/vs/languages/html/common/html.ts
index 89018a0f427..1e954d6ff90 100644
--- a/src/vs/languages/html/common/html.ts
+++ b/src/vs/languages/html/common/html.ts
@@ -329,13 +329,13 @@ export class HTMLMode extends AbstractMode impl
provideHover: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideHover(model.uri, position));
}
- });
+ }, true);
modes.ReferenceProviderRegistry.register(this.getId(), {
provideReferences: (model, position, context, token): Thenable => {
return wireCancellationToken(token, this._provideReferences(model.uri, position, context));
}
- });
+ }, true);
modes.SuggestRegistry.register(this.getId(), {
triggerCharacters: ['.', ':', '<', '"', '=', '/'],
@@ -343,25 +343,25 @@ export class HTMLMode extends AbstractMode impl
provideCompletionItems: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideCompletionItems(model.uri, position));
}
- });
+ }, true);
modes.DocumentHighlightProviderRegistry.register(this.getId(), {
provideDocumentHighlights: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentHighlights(model.uri, position));
}
- });
+ }, true);
modes.DocumentRangeFormattingEditProviderRegistry.register(this.getId(), {
provideDocumentRangeFormattingEdits: (model, range, options, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentRangeFormattingEdits(model.uri, range, options));
}
- });
+ }, true);
modes.LinkProviderRegistry.register(this.getId(), {
provideLinks: (model, token): Thenable => {
return wireCancellationToken(token, this._provideLinks(model.uri));
}
- });
+ }, true);
}
protected _createModeWorkerManager(descriptor:modes.IModeDescriptor, instantiationService: IInstantiationService): ModeWorkerManager {
@@ -407,8 +407,8 @@ export class HTMLMode extends AbstractMode impl
onEnterRules: [
{
- beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join('|')}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, 'i'),
- afterText: /^<\/(\w[\w\d]*)\s*>$/i,
+ beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join('|')}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, 'i'),
+ afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i,
action: { indentAction: modes.IndentAction.IndentOutdent }
},
{
diff --git a/src/vs/languages/html/common/htmlWorker.ts b/src/vs/languages/html/common/htmlWorker.ts
index 93bd138d61f..c82441f4cb0 100644
--- a/src/vs/languages/html/common/htmlWorker.ts
+++ b/src/vs/languages/html/common/htmlWorker.ts
@@ -108,8 +108,11 @@ export class HTMLWorker {
private getTagsFormatOption(key: string, dflt: string[]): string[] {
let list = this.getFormatOption(key, null);
- if (list) {
- return list.split(',').map(t => t.trim().toLowerCase());
+ if (typeof list === 'string') {
+ if (list.length > 0) {
+ return list.split(',').map(t => t.trim().toLowerCase());
+ }
+ return [];
}
return dflt;
}
diff --git a/src/vs/languages/json/common/json.ts b/src/vs/languages/json/common/json.ts
index 6db4ee50489..d7c37175ea9 100644
--- a/src/vs/languages/json/common/json.ts
+++ b/src/vs/languages/json/common/json.ts
@@ -67,7 +67,7 @@ export class JSONMode extends AbstractMode {
provideHover: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideHover(model.uri, position));
}
- });
+ }, true);
this.inplaceReplaceSupport = this;
@@ -78,19 +78,19 @@ export class JSONMode extends AbstractMode {
provideDocumentSymbols: (model, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentSymbols(model.uri));
}
- });
+ }, true);
modes.DocumentFormattingEditProviderRegistry.register(this.getId(), {
provideDocumentFormattingEdits: (model, options, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentFormattingEdits(model.uri, options));
}
- });
+ }, true);
modes.DocumentRangeFormattingEditProviderRegistry.register(this.getId(), {
provideDocumentRangeFormattingEdits: (model, range, options, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentRangeFormattingEdits(model.uri, range, options));
}
- });
+ }, true);
modes.SuggestRegistry.register(this.getId(), {
triggerCharacters: [],
@@ -98,7 +98,7 @@ export class JSONMode extends AbstractMode {
provideCompletionItems: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideCompletionItems(model.uri, position));
}
- });
+ }, true);
}
public creationDone(): void {
diff --git a/src/vs/languages/less/common/less.ts b/src/vs/languages/less/common/less.ts
index 4e435d90107..7efbfa8d827 100644
--- a/src/vs/languages/less/common/less.ts
+++ b/src/vs/languages/less/common/less.ts
@@ -207,7 +207,7 @@ export class LESSMode extends AbstractMode {
provideHover: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideHover(model.uri, position));
}
- });
+ }, true);
this.inplaceReplaceSupport = this;
@@ -217,19 +217,19 @@ export class LESSMode extends AbstractMode {
provideReferences: (model, position, context, token): Thenable => {
return wireCancellationToken(token, this._provideReferences(model.uri, position));
}
- });
+ }, true);
modes.DefinitionProviderRegistry.register(this.getId(), {
provideDefinition: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideDefinition(model.uri, position));
}
- });
+ }, true);
modes.DocumentSymbolProviderRegistry.register(this.getId(), {
provideDocumentSymbols: (model, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentSymbols(model.uri));
}
- });
+ }, true);
modes.SuggestRegistry.register(this.getId(), {
triggerCharacters: [],
@@ -237,7 +237,7 @@ export class LESSMode extends AbstractMode {
provideCompletionItems: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideCompletionItems(model.uri, position));
}
- });
+ }, true);
this.tokenizationSupport = createTokenizationSupport(modeService, this, lexer);
diff --git a/src/vs/languages/markdown/common/markdown.ts b/src/vs/languages/markdown/common/markdown.ts
index 514ea08a8ba..079c9b697bc 100644
--- a/src/vs/languages/markdown/common/markdown.ts
+++ b/src/vs/languages/markdown/common/markdown.ts
@@ -243,7 +243,7 @@ export class MarkdownMode extends AbstractMode implements Modes.IEmitOutputSuppo
provideCompletionItems: (model, position, token) => {
return wireCancellationToken(token, editorWorkerService.textualSuggest(model.uri, position));
}
- });
+ }, true);
}
private _worker(runner:(worker:MarkdownWorker.MarkdownWorker)=>WinJS.TPromise): WinJS.TPromise {
diff --git a/src/vs/languages/php/common/php.ts b/src/vs/languages/php/common/php.ts
index b40e7023114..9e145fee88e 100644
--- a/src/vs/languages/php/common/php.ts
+++ b/src/vs/languages/php/common/php.ts
@@ -494,7 +494,7 @@ export class PHPMode extends AbstractMode implements ITokenizationCustomization
});
if (editorWorkerService) {
- Modes.SuggestRegistry.register(this.getId(), new TextualSuggestSupport(this.getId(), editorWorkerService, configurationService));
+ Modes.SuggestRegistry.register(this.getId(), new TextualSuggestSupport(this.getId(), editorWorkerService, configurationService), true);
}
}
diff --git a/src/vs/languages/razor/common/razor.ts b/src/vs/languages/razor/common/razor.ts
index baec1941d42..c84e55c073c 100644
--- a/src/vs/languages/razor/common/razor.ts
+++ b/src/vs/languages/razor/common/razor.ts
@@ -70,13 +70,13 @@ export class RAZORMode extends htmlMode.HTMLMode {
provideHover: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideHover(model.uri, position));
}
- });
+ }, true);
modes.ReferenceProviderRegistry.register(this.getId(), {
provideReferences: (model, position, context, token): Thenable => {
return wireCancellationToken(token, this._provideReferences(model.uri, position, context));
}
- });
+ }, true);
modes.SuggestRegistry.register(this.getId(), {
triggerCharacters: ['.', ':', '<', '"', '=', '/'],
@@ -84,19 +84,19 @@ export class RAZORMode extends htmlMode.HTMLMode {
provideCompletionItems: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideCompletionItems(model.uri, position));
}
- });
+ }, true);
modes.DocumentHighlightProviderRegistry.register(this.getId(), {
provideDocumentHighlights: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentHighlights(model.uri, position));
}
- });
+ }, true);
modes.LinkProviderRegistry.register(this.getId(), {
provideLinks: (model, token): Thenable => {
return wireCancellationToken(token, this._provideLinks(model.uri));
}
- });
+ }, true);
}
protected _createModeWorkerManager(descriptor:modes.IModeDescriptor, instantiationService: IInstantiationService): ModeWorkerManager {
diff --git a/src/vs/languages/sass/common/sass.ts b/src/vs/languages/sass/common/sass.ts
index 2cb1e784c63..3957e40c6e4 100644
--- a/src/vs/languages/sass/common/sass.ts
+++ b/src/vs/languages/sass/common/sass.ts
@@ -308,7 +308,7 @@ export class SASSMode extends AbstractMode {
provideHover: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideHover(model.uri, position));
}
- });
+ }, true);
this.inplaceReplaceSupport = this;
@@ -318,19 +318,19 @@ export class SASSMode extends AbstractMode {
provideReferences: (model, position, context, token): Thenable => {
return wireCancellationToken(token, this._provideReferences(model.uri, position));
}
- });
+ }, true);
modes.DefinitionProviderRegistry.register(this.getId(), {
provideDefinition: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideDefinition(model.uri, position));
}
- });
+ }, true);
modes.DocumentSymbolProviderRegistry.register(this.getId(), {
provideDocumentSymbols: (model, token): Thenable => {
return wireCancellationToken(token, this._provideDocumentSymbols(model.uri));
}
- });
+ }, true);
modes.SuggestRegistry.register(this.getId(), {
triggerCharacters: [],
@@ -338,7 +338,7 @@ export class SASSMode extends AbstractMode {
provideCompletionItems: (model, position, token): Thenable => {
return wireCancellationToken(token, this._provideCompletionItems(model.uri, position));
}
- });
+ }, true);
this.tokenizationSupport = createTokenizationSupport(modeService, this, lexer);
diff --git a/src/vs/languages/typescript/common/languageFeatures.ts b/src/vs/languages/typescript/common/languageFeatures.ts
index 40bf70d39e8..f77b2c5e154 100644
--- a/src/vs/languages/typescript/common/languageFeatures.ts
+++ b/src/vs/languages/typescript/common/languageFeatures.ts
@@ -24,15 +24,15 @@ export function register(modelService: IModelService, markerService: IMarkerServ
selector: string, defaults:LanguageServiceDefaults, worker: (first: URI, ...more: URI[]) => TPromise): lifecycle.IDisposable {
const disposables: lifecycle.IDisposable[] = [];
- disposables.push(modes.SuggestRegistry.register(selector, new SuggestAdapter(modelService, worker)));
- disposables.push(modes.SignatureHelpProviderRegistry.register(selector, new SignatureHelpAdapter(modelService, worker)));
- disposables.push(modes.HoverProviderRegistry.register(selector, new QuickInfoAdapter(modelService, worker)));
- disposables.push(modes.DocumentHighlightProviderRegistry.register(selector, new OccurrencesAdapter(modelService, worker)));
- disposables.push(modes.DefinitionProviderRegistry.register(selector, new DefinitionAdapter(modelService, worker)));
- disposables.push(modes.ReferenceProviderRegistry.register(selector, new ReferenceAdapter(modelService, worker)));
- disposables.push(modes.DocumentSymbolProviderRegistry.register(selector, new OutlineAdapter(modelService, worker)));
- disposables.push(modes.DocumentRangeFormattingEditProviderRegistry.register(selector, new FormatAdapter(modelService, worker)));
- disposables.push(modes.OnTypeFormattingEditProviderRegistry.register(selector, new FormatOnTypeAdapter(modelService, worker)));
+ disposables.push(modes.SuggestRegistry.register(selector, new SuggestAdapter(modelService, worker), true));
+ disposables.push(modes.SignatureHelpProviderRegistry.register(selector, new SignatureHelpAdapter(modelService, worker), true));
+ disposables.push(modes.HoverProviderRegistry.register(selector, new QuickInfoAdapter(modelService, worker), true));
+ disposables.push(modes.DocumentHighlightProviderRegistry.register(selector, new OccurrencesAdapter(modelService, worker), true));
+ disposables.push(modes.DefinitionProviderRegistry.register(selector, new DefinitionAdapter(modelService, worker), true));
+ disposables.push(modes.ReferenceProviderRegistry.register(selector, new ReferenceAdapter(modelService, worker), true));
+ disposables.push(modes.DocumentSymbolProviderRegistry.register(selector, new OutlineAdapter(modelService, worker), true));
+ disposables.push(modes.DocumentRangeFormattingEditProviderRegistry.register(selector, new FormatAdapter(modelService, worker), true));
+ disposables.push(modes.OnTypeFormattingEditProviderRegistry.register(selector, new FormatOnTypeAdapter(modelService, worker), true));
disposables.push(new DiagnostcsAdapter(defaults, selector, markerService, modelService, worker));
return lifecycle.combinedDisposable(disposables);
diff --git a/src/vs/platform/configuration/common/configuration.ts b/src/vs/platform/configuration/common/configuration.ts
index 1db7d42d67b..1ca58734577 100644
--- a/src/vs/platform/configuration/common/configuration.ts
+++ b/src/vs/platform/configuration/common/configuration.ts
@@ -39,7 +39,7 @@ export interface IConfigurationServiceEvent {
config: any;
}
-export function extractSetting(config: any, settingPath: string): any {
+export function getConfigurationValue(config: any, settingPath: string, defaultValue?: T): T {
function accessSetting(config: any, path: string[]): any {
let current = config;
for (let i = 0; i < path.length; i++) {
@@ -48,9 +48,12 @@ export function extractSetting(config: any, settingPath: string): any {
return undefined;
}
}
- return current;
+ return current;
}
let path = settingPath.split('.');
- return accessSetting(config, path);
+ let result = accessSetting(config, path);
+ return typeof result === 'undefined'
+ ? defaultValue
+ : result;
}
\ No newline at end of file
diff --git a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts
index 0ec73c9de2f..6899a36a931 100644
--- a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts
+++ b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts
@@ -6,12 +6,10 @@
import { TPromise } from 'vs/base/common/winjs.base';
import { IExtension, IExtensionGalleryService, IGalleryVersion, IQueryOptions, IQueryResult } from 'vs/platform/extensionManagement/common/extensionManagement';
import { isUndefined } from 'vs/base/common/types';
-import { IXHRResponse } from 'vs/base/common/http';
import { assign, getOrDefault } from 'vs/base/common/objects';
import { IRequestService } from 'vs/platform/request/common/request';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
-import { matchesContiguousSubString } from 'vs/base/common/filters';
-import { getExtensionId } from 'vs/platform/extensionManagement/node/extensionManagementUtil';
+import pkg from 'vs/platform/package';
import product from 'vs/platform/product';
export interface IGalleryExtensionFile {
@@ -190,23 +188,11 @@ function toExtension(galleryExtension: IGalleryExtension, extensionsGalleryUrl:
};
}
-const FIVE_MINUTES = 1000 * 60 * 5;
-
-function extensionFilter(input: string): (e: IExtension) => boolean {
- return extension => {
- return !!matchesContiguousSubString(input, `${ extension.publisher }.${ extension.name }`)
- || !!matchesContiguousSubString(input, extension.name)
- || !!matchesContiguousSubString(input, extension.displayName)
- || !!matchesContiguousSubString(input, extension.description);
- };
-}
-
export class ExtensionGalleryService implements IExtensionGalleryService {
serviceId = IExtensionGalleryService;
private extensionsGalleryUrl: string;
- private extensionsCacheUrl: string;
private machineId: TPromise;
constructor(
@@ -215,7 +201,6 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
) {
const config = product.extensionsGallery;
this.extensionsGalleryUrl = config && config.serviceUrl;
- this.extensionsCacheUrl = config && config.cacheUrl;
this.machineId = telemetryService.getTelemetryInfo().then(({ machineId }) => machineId);
}
@@ -234,53 +219,10 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
const type = options.ids ? 'ids' : (options.text ? 'text' : 'all');
const text = options.text || '';
- this.telemetryService.publicLog('galleryService:query', { type, text });
-
- const cache = this.queryCache().then(result => {
- const rawLastModified = result.getResponseHeader('last-modified');
-
- if (!rawLastModified) {
- return TPromise.wrapError('no last modified header');
- }
-
- const lastModified = new Date(rawLastModified).getTime();
- const now = new Date().getTime();
- const diff = now - lastModified;
-
- if (diff > FIVE_MINUTES) {
- return TPromise.wrapError('stale');
- }
-
- return this.getRequestHeaders().then(downloadHeaders => {
- const rawExtensions: IGalleryExtension[] = JSON.parse(result.responseText).results[0].extensions || [];
- let extensions = rawExtensions
- .map(e => toExtension(e, this.extensionsGalleryUrl, downloadHeaders));
-
- if (options.ids) {
- extensions = extensions.filter(e => options.ids.indexOf(getExtensionId(e)) > -1);
- } else if (options.text) {
- extensions = extensions.filter(extensionFilter(options.text));
- }
-
- extensions = extensions
- .sort((a, b) => b.galleryInformation.installCount - a.galleryInformation.installCount);
-
- return {
- firstPage: extensions,
- total: extensions.length,
- pageSize: extensions.length,
- getPage: () => TPromise.as([])
- };
- });
- });
-
- return cache.then(null, _ => this._query(options));
- }
-
- private _query(options: IQueryOptions = {}): TPromise {
- const text = getOrDefault(options, o => o.text, '');
const pageSize = getOrDefault(options, o => o.pageSize, 30);
+ this.telemetryService.publicLog('galleryService:query', { type, text });
+
let query = new Query()
.withFlags(Flags.IncludeVersions, Flags.IncludeCategoryAndTags, Flags.IncludeAssetUri, Flags.IncludeStatistics)
.withPage(1, pageSize)
@@ -337,21 +279,11 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
});
}
- private queryCache(): TPromise {
- const url = this.extensionsCacheUrl;
-
- if (!url) {
- return TPromise.wrapError(new Error('No cache configured.'));
- }
-
- return this.requestService.makeRequest({ url });
- }
-
private getRequestHeaders(): TPromise {
return this.machineId.then(machineId => {
const result = {
- 'X-Market-Client-Id': 'VSCode',
- 'User-Agent': 'VSCode'
+ 'X-Market-Client-Id': `VSCode ${ pkg.version }`,
+ 'User-Agent': `VSCode ${ pkg.version }`
};
if (machineId) {
diff --git a/src/vs/platform/product.ts b/src/vs/platform/product.ts
index 385a0d7a5f9..deb201dd345 100644
--- a/src/vs/platform/product.ts
+++ b/src/vs/platform/product.ts
@@ -21,7 +21,6 @@ export interface IProductConfiguration {
date: string;
extensionsGallery: {
serviceUrl: string;
- cacheUrl: string;
itemUrl: string;
};
extensionTips: { [id: string]: string; };
diff --git a/src/vs/platform/workspace/common/workspace.ts b/src/vs/platform/workspace/common/workspace.ts
index 8d4dc3617df..281f5ca4cd5 100644
--- a/src/vs/platform/workspace/common/workspace.ts
+++ b/src/vs/platform/workspace/common/workspace.ts
@@ -101,7 +101,6 @@ export interface IEnvironment {
extensionsGallery: {
serviceUrl: string;
- cacheUrl: string;
itemUrl: string;
};
diff --git a/src/vs/workbench/api/node/extHostEditors.ts b/src/vs/workbench/api/node/extHostEditors.ts
index f4b9e34bb14..83f0ebc8b51 100644
--- a/src/vs/workbench/api/node/extHostEditors.ts
+++ b/src/vs/workbench/api/node/extHostEditors.ts
@@ -5,6 +5,8 @@
'use strict';
import URI from 'vs/base/common/uri';
+import {readonly, illegalArgument} from 'vs/base/common/errors';
+import {IdGenerator} from 'vs/base/common/idGenerator';
import Event, {Emitter} from 'vs/base/common/event';
import {IDisposable, dispose} from 'vs/base/common/lifecycle';
import {TPromise} from 'vs/base/common/winjs.base';
@@ -171,13 +173,13 @@ export class ExtHostEditors {
class TextEditorDecorationType implements vscode.TextEditorDecorationType {
- private static LAST_ID: number = 0;
+ private static _Keys = new IdGenerator('TextEditorDecorationType');
private _proxy: MainThreadEditors;
public key: string;
constructor(proxy: MainThreadEditors, options: vscode.DecorationRenderOptions) {
- this.key = 'TextEditorDecorationType' + (++TextEditorDecorationType.LAST_ID);
+ this.key = TextEditorDecorationType._Keys.nextId();
this._proxy = proxy;
this._proxy._registerTextEditorDecorationType(this.key, options);
}
@@ -267,24 +269,13 @@ export class TextEditorEdit {
setEndOfLine(endOfLine:EndOfLine): void {
if (endOfLine !== EndOfLine.LF && endOfLine !== EndOfLine.CRLF) {
- throw illegalArg('endOfLine');
+ throw illegalArgument('endOfLine');
}
this._setEndOfLine = endOfLine;
}
}
-function readonly(name: string, alt?: string) {
- let message = `The property '${name}' is readonly.`;
- if (alt) {
- message += ` Use '${alt}' instead.`;
- }
- return new Error(message);
-}
-
-function illegalArg(name: string) {
- return new Error(`illgeal argument '${name}'`);
-}
function deprecated(name: string, message: string = 'Refer to the documentation for further details.') {
return (target: Object, key: string, descriptor: TypedPropertyDescriptor) => {
@@ -378,7 +369,7 @@ class ExtHostTextEditor implements vscode.TextEditor {
set selection(value: Selection) {
if (!(value instanceof Selection)) {
- throw illegalArg('selection');
+ throw illegalArgument('selection');
}
this._selections = [value];
this._trySetSelection(true);
@@ -390,7 +381,7 @@ class ExtHostTextEditor implements vscode.TextEditor {
set selections(value: Selection[]) {
if (!Array.isArray(value) || value.some(a => !(a instanceof Selection))) {
- throw illegalArg('selections');
+ throw illegalArgument('selections');
}
this._selections = value;
this._trySetSelection(true);
diff --git a/src/vs/workbench/api/node/mainThreadEditors.ts b/src/vs/workbench/api/node/mainThreadEditors.ts
index da37e699b77..7a5e44a89d3 100644
--- a/src/vs/workbench/api/node/mainThreadEditors.ts
+++ b/src/vs/workbench/api/node/mainThreadEditors.ts
@@ -11,6 +11,7 @@ import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService';
import {IModelService} from 'vs/editor/common/services/modelService';
import {IDisposable, dispose} from 'vs/base/common/lifecycle';
import {RunOnceScheduler} from 'vs/base/common/async';
+import {IdGenerator} from 'vs/base/common/idGenerator';
import {Range} from 'vs/editor/common/core/range';
import {Selection} from 'vs/editor/common/core/selection';
import {EndOfLine} from 'vs/workbench/api/node/extHostTypes';
@@ -341,10 +342,7 @@ export class MainThreadTextEditor {
*/
export class MainThreadEditorsTracker {
- private static _LAST_TEXT_EDITOR_ID = 0;
- private _nextId(): string {
- return String(++MainThreadEditorsTracker._LAST_TEXT_EDITOR_ID);
- }
+ private static _Ids = new IdGenerator('');
private _toDispose: IDisposable[];
private _codeEditorService: ICodeEditorService;
@@ -467,7 +465,7 @@ export class MainThreadEditorsTracker {
// Create new editors as needed
for (let i = existingTextEditors.length; i < codeEditors.length; i++) {
- let newTextEditor = new MainThreadTextEditor(this._nextId(), model, codeEditors[i], this._focusTracker, this._modelService);
+ let newTextEditor = new MainThreadTextEditor(MainThreadEditorsTracker._Ids.nextId(), model, codeEditors[i], this._focusTracker, this._modelService);
existingTextEditors.push(newTextEditor);
this._onTextEditorAdd.fire(newTextEditor);
}
@@ -496,7 +494,7 @@ export class MainThreadEditorsTracker {
// Create new editor if needed or adjust it
if (existingTextEditors.length === 0) {
- let newTextEditor = new MainThreadTextEditor(this._nextId(), model, null, this._focusTracker, this._modelService);
+ let newTextEditor = new MainThreadTextEditor(MainThreadEditorsTracker._Ids.nextId(), model, null, this._focusTracker, this._modelService);
existingTextEditors.push(newTextEditor);
this._onTextEditorAdd.fire(newTextEditor);
} else {
diff --git a/src/vs/workbench/browser/parts/compositePart.ts b/src/vs/workbench/browser/parts/compositePart.ts
index a32be14c7e7..24f29ab7d79 100644
--- a/src/vs/workbench/browser/parts/compositePart.ts
+++ b/src/vs/workbench/browser/parts/compositePart.ts
@@ -66,7 +66,7 @@ export abstract class CompositePart extends Part {
private registry: CompositeRegistry,
private activeCompositeSettingsKey: string,
private nameForTelemetry: string,
- private compositeCssClass: string,
+ private compositeCSSClass: string,
private actionContributionScope: string,
id: string
) {
@@ -224,7 +224,7 @@ export abstract class CompositePart extends Part {
// Build Container off-DOM
compositeContainer = $().div({
- 'class': ['composite', this.compositeCssClass],
+ 'class': ['composite', this.compositeCSSClass],
id: composite.getId()
}, (div: Builder) => {
createCompositePromise = composite.create(div);
diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.ts
index 01dab50a167..bae6a6aa81b 100644
--- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.ts
+++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.ts
@@ -36,7 +36,7 @@ function extensionEquals(one: IExtensionManifest, other: IExtensionManifest): bo
return one.publisher === other.publisher && one.name === other.name;
}
-const OutdatedPeriod = 5 * 60 * 1000; // every 5 minutes
+const OutdatedPeriod = 4 * 60 * 60 * 1000; // every 4 hours
export class ExtensionsStatusbarItem implements IStatusbarItem {
diff --git a/src/vs/workbench/parts/html/browser/htmlPreviewPart.ts b/src/vs/workbench/parts/html/browser/htmlPreviewPart.ts
index d3bb7465390..685a24f4002 100644
--- a/src/vs/workbench/parts/html/browser/htmlPreviewPart.ts
+++ b/src/vs/workbench/parts/html/browser/htmlPreviewPart.ts
@@ -122,7 +122,8 @@ export class HtmlPreviewPart extends BaseEditor {
public layout(dimension: Dimension): void {
const {width, height} = dimension;
- this._container.style.width = `${width}px`;
+ // we take the padding we set on create into account
+ this._container.style.width = `${Math.max(width - 20, 0)}px`;
this._container.style.height = `${height}px`;
}
diff --git a/src/vs/workbench/services/themes/electron-browser/themeService.ts b/src/vs/workbench/services/themes/electron-browser/themeService.ts
index 518e059820a..e2ee73d6d48 100644
--- a/src/vs/workbench/services/themes/electron-browser/themeService.ts
+++ b/src/vs/workbench/services/themes/electron-browser/themeService.ts
@@ -237,7 +237,7 @@ export class ThemeService implements IThemeService {
collector.warn(nls.localize('invalid.path.1', "Expected `contributes.{0}.path` ({1}) to be included inside extension's folder ({2}). This might make the extension non-portable.", themesExtPoint.name, normalizedAbsolutePath, extensionFolderPath));
}
- let themeSelector = toCssSelector(extensionId + '-' + Paths.normalize(theme.path));
+ let themeSelector = toCSSSelector(extensionId + '-' + Paths.normalize(theme.path));
this.knownThemes.push({
id: `${theme.uiTheme || defaultBaseTheme} ${themeSelector}`,
label: theme.label || Paths.basename(theme.path),
@@ -268,7 +268,7 @@ export class ThemeService implements IThemeService {
-function toCssSelector(str: string) {
+function toCSSSelector(str: string) {
return str.replace(/[^_\-a-zA-Z0-9]/g, '-');
}