Merge commit 'be3e8236086165e5e45a5a10783823874b3f3ebd' as 'lib/vscode'
This commit is contained in:
2
lib/vscode/extensions/perl/.vscodeignore
Normal file
2
lib/vscode/extensions/perl/.vscodeignore
Normal file
@ -0,0 +1,2 @@
|
||||
test/**
|
||||
cgmanifest.json
|
33
lib/vscode/extensions/perl/cgmanifest.json
Normal file
33
lib/vscode/extensions/perl/cgmanifest.json
Normal 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
|
||||
}
|
36
lib/vscode/extensions/perl/package.json
Normal file
36
lib/vscode/extensions/perl/package.json
Normal 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"
|
||||
}]
|
||||
}
|
||||
}
|
4
lib/vscode/extensions/perl/package.nls.json
Normal file
4
lib/vscode/extensions/perl/package.nls.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"displayName": "Perl Language Basics",
|
||||
"description": "Provides syntax highlighting and bracket matching in Perl files."
|
||||
}
|
32
lib/vscode/extensions/perl/perl.language-configuration.json
Normal file
32
lib/vscode/extensions/perl/perl.language-configuration.json
Normal 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))"
|
||||
}
|
||||
}
|
||||
}
|
26
lib/vscode/extensions/perl/perl6.language-configuration.json
Normal file
26
lib/vscode/extensions/perl/perl6.language-configuration.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"comments": {
|
||||
"lineComment": "#"
|
||||
},
|
||||
"brackets": [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"]
|
||||
],
|
||||
"autoClosingPairs": [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"],
|
||||
{ "open": "\"", "close": "\"", "notIn": ["string"] },
|
||||
{ "open": "'", "close": "'", "notIn": ["string"] },
|
||||
{ "open": "`", "close": "`", "notIn": ["string"] }
|
||||
],
|
||||
"surroundingPairs": [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"],
|
||||
["\"", "\""],
|
||||
["'", "'"],
|
||||
["`", "`"]
|
||||
]
|
||||
}
|
2539
lib/vscode/extensions/perl/syntaxes/perl.tmLanguage.json
Normal file
2539
lib/vscode/extensions/perl/syntaxes/perl.tmLanguage.json
Normal file
File diff suppressed because it is too large
Load Diff
315
lib/vscode/extensions/perl/syntaxes/perl6.tmLanguage.json
Normal file
315
lib/vscode/extensions/perl/syntaxes/perl6.tmLanguage.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
46
lib/vscode/extensions/perl/test/colorize-fixtures/test.pl
Normal file
46
lib/vscode/extensions/perl/test/colorize-fixtures/test.pl
Normal 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"; }
|
31
lib/vscode/extensions/perl/test/colorize-fixtures/test2.pl
Normal file
31
lib/vscode/extensions/perl/test/colorize-fixtures/test2.pl
Normal 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++;
|
||||
};
|
3313
lib/vscode/extensions/perl/test/colorize-results/test2_pl.json
Normal file
3313
lib/vscode/extensions/perl/test/colorize-results/test2_pl.json
Normal file
File diff suppressed because it is too large
Load Diff
2312
lib/vscode/extensions/perl/test/colorize-results/test_pl.json
Normal file
2312
lib/vscode/extensions/perl/test/colorize-results/test_pl.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user