Archived
1
0

Merge commit 'be3e8236086165e5e45a5a10783823874b3f3ebd' as 'lib/vscode'

This commit is contained in:
Joe Previte
2020-12-15 15:52:33 -07:00
4649 changed files with 1311795 additions and 0 deletions

View File

@ -0,0 +1,2 @@
test/**
cgmanifest.json

View File

@ -0,0 +1,33 @@
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "textmate/perl.tmbundle",
"repositoryUrl": "https://github.com/textmate/perl.tmbundle",
"commitHash": "80826abe75250286c2a1a07958e50e8551d3f50c"
}
},
"licenseDetail": [
"Copyright (c) textmate-perl.tmbundle project authors",
"",
"If not otherwise specified (see below), files in this repository fall under the following license:",
"",
"Permission to copy, use, modify, sell and distribute this",
"software is granted. This software is provided \"as is\" without",
"express or implied warranty, and with no claim as to its",
"suitability for any purpose.",
"",
"An exception is made for files in readable text which contain their own license information,",
"or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added",
"to the base-name name of the original file, and an extension of txt, html, or similar. For example",
"\"tidy\" is accompanied by \"tidy-license.txt\"."
],
"license": "TextMate Bundle License",
"description": "The files syntaxes/perl.tmLanguage.json and syntaxes/perl6.tmLanguage.json were derived from Perl.plist and Perl 6.tmLanguage from https://github.com/textmate/perl.tmbundle.",
"version": "0.0.0"
}
],
"version": 1
}

View File

@ -0,0 +1,36 @@
{
"name": "perl",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js textmate/perl.tmbundle Syntaxes/Perl.plist ./syntaxes/perl.tmLanguage.json Syntaxes/Perl%206.tmLanguage ./syntaxes/perl6.tmLanguage.json"
},
"contributes": {
"languages": [{
"id": "perl",
"aliases": ["Perl", "perl"],
"extensions": [".pl", ".pm", ".pod", ".t", ".PL", ".psgi"],
"firstLine": "^#!.*\\bperl\\b",
"configuration": "./perl.language-configuration.json"
}, {
"id": "perl6",
"aliases": ["Perl 6", "perl6"],
"extensions": [".p6", ".pl6", ".pm6", ".nqp"],
"firstLine": "(^#!.*\\bperl6\\b)|use\\s+v6",
"configuration": "./perl6.language-configuration.json"
}],
"grammars": [{
"language": "perl",
"scopeName": "source.perl",
"path": "./syntaxes/perl.tmLanguage.json"
}, {
"language": "perl6",
"scopeName": "source.perl.6",
"path": "./syntaxes/perl6.tmLanguage.json"
}]
}
}

View File

@ -0,0 +1,4 @@
{
"displayName": "Perl Language Basics",
"description": "Provides syntax highlighting and bracket matching in Perl files."
}

View File

@ -0,0 +1,32 @@
{
"comments": {
"lineComment": "#"
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "\"", "close": "\"", "notIn": ["string"] },
{ "open": "'", "close": "'", "notIn": ["string"] },
{ "open": "`", "close": "`", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"],
["`", "`"]
],
"folding": {
"markers": {
"start": "^(?:(?:=pod\\s*$)|(?:\\s*#region\\b))",
"end": "^(?:(?:=cut\\s*$)|(?:\\s*#endregion\\b))"
}
}
}

View File

@ -0,0 +1,26 @@
{
"comments": {
"lineComment": "#"
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "\"", "close": "\"", "notIn": ["string"] },
{ "open": "'", "close": "'", "notIn": ["string"] },
{ "open": "`", "close": "`", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"],
["`", "`"]
]
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,315 @@
{
"information_for_contributors": [
"This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl%206.tmLanguage",
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/textmate/perl.tmbundle/commit/d9841a0878239fa43f88c640f8d458590f97e8f5",
"name": "Perl 6",
"scopeName": "source.perl.6",
"patterns": [
{
"begin": "^=begin",
"end": "^=end",
"name": "comment.block.perl"
},
{
"begin": "(^[ \\t]+)?(?=#)",
"beginCaptures": {
"1": {
"name": "punctuation.whitespace.comment.leading.perl"
}
},
"end": "(?!\\G)",
"patterns": [
{
"begin": "#",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.perl"
}
},
"end": "\\n",
"name": "comment.line.number-sign.perl"
}
]
},
{
"captures": {
"1": {
"name": "storage.type.class.perl.6"
},
"3": {
"name": "entity.name.type.class.perl.6"
}
},
"match": "(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\s+)(((?:::|')?(?:([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*))+)",
"name": "meta.class.perl.6"
},
{
"begin": "(?<=\\s)'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.perl"
}
},
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.perl"
}
},
"name": "string.quoted.single.perl",
"patterns": [
{
"match": "\\\\['\\\\]",
"name": "constant.character.escape.perl"
}
]
},
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.perl"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.perl"
}
},
"name": "string.quoted.double.perl",
"patterns": [
{
"match": "\\\\[abtnfre\"\\\\]",
"name": "constant.character.escape.perl"
}
]
},
{
"begin": "q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/",
"end": "\\3",
"name": "string.quoted.single.heredoc.perl"
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{{",
"end": "}}",
"name": "string.quoted.double.heredoc.brace.perl",
"patterns": [
{
"include": "#qq_brace_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(\\(",
"end": "\\)\\)",
"name": "string.quoted.double.heredoc.paren.perl",
"patterns": [
{
"include": "#qq_paren_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[\\[",
"end": "\\]\\]",
"name": "string.quoted.double.heredoc.bracket.perl",
"patterns": [
{
"include": "#qq_bracket_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{",
"end": "}",
"name": "string.quoted.single.heredoc.brace.perl",
"patterns": [
{
"include": "#qq_brace_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*/",
"end": "/",
"name": "string.quoted.single.heredoc.slash.perl",
"patterns": [
{
"include": "#qq_slash_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(",
"end": "\\)",
"name": "string.quoted.single.heredoc.paren.perl",
"patterns": [
{
"include": "#qq_paren_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[",
"end": "\\]",
"name": "string.quoted.single.heredoc.bracket.perl",
"patterns": [
{
"include": "#qq_bracket_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*'",
"end": "'",
"name": "string.quoted.single.heredoc.single.perl",
"patterns": [
{
"include": "#qq_single_string_content"
}
]
},
{
"begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\"",
"end": "\"",
"name": "string.quoted.single.heredoc.double.perl",
"patterns": [
{
"include": "#qq_double_string_content"
}
]
},
{
"match": "\\b\\$\\w+\\b",
"name": "variable.other.perl"
},
{
"match": "\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\b",
"name": "storage.type.declare.routine.perl"
},
{
"match": "\\b(self)\\b",
"name": "variable.language.perl"
},
{
"match": "\\b(use|require)\\b",
"name": "keyword.other.include.perl"
},
{
"match": "\\b(if|else|elsif|unless)\\b",
"name": "keyword.control.conditional.perl"
},
{
"match": "\\b(let|my|our|state|temp|has|constant)\\b",
"name": "storage.type.variable.perl"
},
{
"match": "\\b(for|loop|repeat|while|until|gather|given)\\b",
"name": "keyword.control.repeat.perl"
},
{
"match": "\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\b",
"name": "keyword.control.flowcontrol.perl"
},
{
"match": "\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\b",
"name": "storage.modifier.type.constraints.perl"
},
{
"match": "\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\b",
"name": "meta.function.perl"
},
{
"match": "\\b(die|fail|try|warn)\\b",
"name": "keyword.control.control-handlers.perl"
},
{
"match": "\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\b",
"name": "storage.modifier.perl"
},
{
"match": "\\b(NaN|Inf)\\b",
"name": "constant.numeric.perl"
},
{
"match": "\\b(oo|fatal)\\b",
"name": "keyword.other.pragma.perl"
},
{
"match": "\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\b",
"name": "support.type.perl6"
},
{
"match": "\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\b",
"name": "keyword.operator.perl"
},
{
"match": "(\\$|@|%|&)(\\*|:|!|\\^|~|=|\\?|(<(?=.+>)))?([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*",
"name": "variable.other.identifier.perl.6"
},
{
"match": "\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\b",
"name": "support.function.perl"
}
],
"repository": {
"qq_brace_string_content": {
"begin": "{",
"end": "}",
"patterns": [
{
"include": "#qq_brace_string_content"
}
]
},
"qq_bracket_string_content": {
"begin": "\\[",
"end": "\\]",
"patterns": [
{
"include": "#qq_bracket_string_content"
}
]
},
"qq_double_string_content": {
"begin": "\"",
"end": "\"",
"patterns": [
{
"include": "#qq_double_string_content"
}
]
},
"qq_paren_string_content": {
"begin": "\\(",
"end": "\\)",
"patterns": [
{
"include": "#qq_paren_string_content"
}
]
},
"qq_single_string_content": {
"begin": "'",
"end": "'",
"patterns": [
{
"include": "#qq_single_string_content"
}
]
},
"qq_slash_string_content": {
"begin": "\\\\/",
"end": "\\\\/",
"patterns": [
{
"include": "#qq_slash_string_content"
}
]
}
}
}

View File

@ -0,0 +1,46 @@
use strict;
my $badfound = 0;
sub check_line {
my($fn, $line) = @_;
# Check for that =.
if($line =~ /^\s*if\s*\(.*[^!<>=]=([^=].*\)|\))/) {
if(!$badfound) {
print("The following suspicious lines were found:\n");
$badfound = 1;
}
print "$fn:$.: $line\n";
}
}
#
# This function opens and reads one file, and calls
# check_line to analyze each line. Call it with the
# file name.
#
sub check_file {
my($fn) = @_;
if(!open(IN, $fn)) {
print "Cannot read $fn.\n";
return;
}
my($line);
while($line = <IN>)
{
chomp $line;
check_line($fn,$line);
}
close IN;
}
#
# Go through the argument list and check each file
#
while(my $fn = shift @ARGV) {
check_file($fn);
}
if(!$badfound) { print "No suspicious lines were found.\n"; }

View File

@ -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++;
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff