Browse Source

Beginning work on language grammars

main
Dustin Wilson 3 years ago
parent
commit
53ed38d070
  1. 5
      .gitignore
  2. 3
      composer.json
  3. 516
      javascript.json
  4. 29
      lib/Grammar/Registry.php
  5. 5
      package.json
  6. 68
      run
  7. 249
      yarn.lock

5
.gitignore

@ -1,7 +1,10 @@
# Temporary files and dependencies
/deps/
/node_modules/
/vendor/
test*.php
*-old.php
/vendor/
yarn-error.log
# Windows files

3
composer.json

@ -1,7 +1,7 @@
{
"name": "dw/highlighter",
"type": "library",
"description": "The clean and modern RSS server that doesn't give you any crap",
"description": "TextMate-like syntax highlighting in PHP",
"license": "MIT",
"authors": [
{
@ -9,7 +9,6 @@
"email": "dustin@dustinwilson.com",
"homepage": "https://dustinwilson.com/"
}
],
"require": {
"php": "^7.4 || ^8.0",

516
javascript.json

@ -0,0 +1,516 @@
{
"comment": "JavaScript Syntax: version 2.0",
"fileTypes": [
"js",
"htc",
"jsx"
],
"firstLineMatch": "^#!.*\\bnode",
"keyEquivalent": "^~J",
"name": "JavaScript",
"patterns": [
{
"captures": {
"1": {
"name": "support.class.js"
},
"2": {
"name": "support.constant.js"
},
"3": {
"name": "keyword.operator.js"
}
},
"comment": "match stuff like: Sound.prototype = { … } when extending an object",
"match": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\s*(=)\\s*",
"name": "meta.class.js"
},
{
"begin": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(function)?\\s*(\\()",
"beginCaptures": {
"1": {
"name": "support.class.js"
},
"2": {
"name": "support.constant.js"
},
"3": {
"name": "entity.name.function.js"
},
"4": {
"name": "keyword.operator.js"
},
"5": {
"name": "storage.type.function.js"
},
"6": {
"name": "punctuation.definition.parameters.begin.js"
}
},
"comment": "match stuff like: Sound.prototype.play = function() { … }",
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.js"
}
},
"name": "meta.function.prototype.js",
"patterns": [
{
"include": "#function-params"
}
]
},
{
"captures": {
"1": {
"name": "support.class.js"
},
"2": {
"name": "support.constant.js"
},
"3": {
"name": "entity.name.function.js"
},
"4": {
"name": "keyword.operator.js"
}
},
"comment": "match stuff like: Sound.prototype.play = myfunc",
"match": "([a-zA-Z_?.$][\\w?.$]*)\\.(prototype)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*",
"name": "meta.function.js"
},
{
"begin": "([a-zA-Z_?.$][\\w?.$]*)\\.([a-zA-Z_?.$][\\w?.$]*)\\s*(=)\\s*(function)\\s*(\\()",
"beginCaptures": {
"1": {
"name": "support.class.js"
},
"2": {
"name": "entity.name.function.js"
},
"3": {
"name": "keyword.operator.js"
},
"4": {
"name": "storage.type.function.js"
},
"5": {
"name": "punctuation.definition.parameters.begin.js"
}
},
"comment": "match stuff like: Sound.play = function() { … }",
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.js"
}
},
"name": "meta.function.js",
"patterns": [
{
"include": "#function-params"
}
]
},
{
"begin": "([a-zA-Z_?$][\\w?$]*)\\s*(=)\\s*(function)\\s*(\\()",
"beginCaptures": {
"1": {
"name": "entity.name.function.js"
},
"2": {
"name": "keyword.operator.js"
},
"3": {
"name": "storage.type.function.js"
},
"4": {
"name": "punctuation.definition.parameters.begin.js"
}
},
"comment": "match stuff like: play = function() { … }",
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.js"
}
},
"name": "meta.function.js",
"patterns": [
{
"include": "#function-params"
}
]
},
{
"begin": "\\b(function)\\s+([a-zA-Z_$]\\w*)?\\s*(\\()",
"beginCaptures": {
"1": {
"name": "storage.type.function.js"
},
"2": {
"name": "entity.name.function.js"
},
"3": {
"name": "punctuation.definition.parameters.begin.js"
}
},
"comment": "match regular function like: function myFunc(arg) { … }",
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.js"
}
},
"name": "meta.function.js",
"patterns": [
{
"include": "#function-params"
}
]
},
{
"begin": "\\b([a-zA-Z_?.$][\\w?.$]*)\\s*:\\s*\\b(function)?\\s*(\\()",
"beginCaptures": {
"1": {
"name": "entity.name.function.js"
},
"2": {
"name": "storage.type.function.js"
},
"3": {
"name": "punctuation.definition.parameters.begin.js"
}
},
"comment": "match stuff like: foobar: function() { … }",
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.js"
}
},
"name": "meta.function.json.js",
"patterns": [
{
"include": "#function-params"
}
]
},
{
"begin": "(?:((')(.*?)('))|((\")(.*?)(\")))\\s*:\\s*\\b(function)?\\s*(\\()",
"beginCaptures": {
"1": {
"name": "string.quoted.single.js"
},
"2": {
"name": "punctuation.definition.string.begin.js"
},
"3": {
"name": "entity.name.function.js"
},
"4": {
"name": "punctuation.definition.string.end.js"
},
"5": {
"name": "string.quoted.double.js"
},
"6": {
"name": "punctuation.definition.string.begin.js"
},
"7": {
"name": "entity.name.function.js"
},
"8": {
"name": "punctuation.definition.string.end.js"
},
"9": {
"name": "entity.name.function.js"
},
"10": {
"name": "punctuation.definition.parameters.begin.js"
}
},
"comment": "Attempt to match \"foo\": function",
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.js"
}
},
"name": "meta.function.json.js",
"patterns": [
{
"include": "#function-params"
}
]
},
{
"captures": {
"1": {
"name": "keyword.operator.new.js"
},
"2": {
"name": "entity.name.type.instance.js"
}
},
"match": "(new)\\s+(\\w+(?:\\.\\w*)?)",
"name": "meta.class.instance.constructor"
},
{
"match": "\\b(console)\\b",
"name": "entity.name.type.object.js.firebug"
},
{
"match": "\\.(warn|info|log|error|time|timeEnd|assert)\\b",
"name": "support.function.js.firebug"
},
{
"match": "\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b",
"name": "constant.numeric.js"
},
{
"begin": "'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.js"
}
},
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.js"
}
},
"name": "string.quoted.single.js",
"patterns": [
{
"match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",
"name": "constant.character.escape.js"
}
]
},
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.js"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.js"
}
},
"name": "string.quoted.double.js",
"patterns": [
{
"match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)",
"name": "constant.character.escape.js"
}
]
},
{
"begin": "/\\*\\*(?!/)",
"captures": {
"0": {
"name": "punctuation.definition.comment.js"
}
},
"end": "\\*/",
"name": "comment.block.documentation.js"
},
{
"begin": "/\\*",
"captures": {
"0": {
"name": "punctuation.definition.comment.js"
}
},
"end": "\\*/",
"name": "comment.block.js"
},
{
"begin": "(^[ \\t]+)?(?=//)",
"beginCaptures": {
"1": {
"name": "punctuation.whitespace.comment.leading.js"
}
},
"end": "(?!\\G)",
"patterns": [
{
"begin": "//",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.js"
}
},
"end": "\\n",
"name": "comment.line.double-slash.js"
}
]
},
{
"captures": {
"0": {
"name": "punctuation.definition.comment.html.js"
},
"2": {
"name": "punctuation.definition.comment.html.js"
}
},
"match": "(<!--|-->)",
"name": "comment.block.html.js"
},
{
"match": "(?<!\\.)\\b(boolean|byte|char|class|double|enum|float|function|int|interface|long|short|void)\\b",
"name": "storage.type.js"
},
{
"match": "(?<!\\.)\\b(const|export|extends|final|implements|native|private|protected|public|static|synchronized|throws|transient|var|volatile)\\b",
"name": "storage.modifier.js"
},
{
"match": "(?<!\\.)\\b(break|case|catch|continue|default|do|else|finally|for|goto|if|import|package|return|switch|throw|try|while)\\b",
"name": "keyword.control.js"
},
{
"match": "(?<!\\.)\\b(delete|in|instanceof|new|typeof|with)\\b",
"name": "keyword.operator.js"
},
{
"match": "(?<!\\.)\\btrue\\b",
"name": "constant.language.boolean.true.js"
},
{
"match": "(?<!\\.)\\bfalse\\b",
"name": "constant.language.boolean.false.js"
},
{
"match": "(?<!\\.)\\bnull\\b",
"name": "constant.language.null.js"
},
{
"match": "(?<!\\.)\\b(super|this)\\b",
"name": "variable.language.js"
},
{
"match": "(?<!\\.)\\b(debugger)\\b",
"name": "keyword.other.js"
},
{
"match": "\\b(Anchor|Applet|Area|Array|Boolean|Button|Checkbox|Date|document|event|FileUpload|Form|Frame|Function|Hidden|History|Image|JavaArray|JavaClass|JavaObject|JavaPackage|java|Layer|Link|Location|Math|MimeType|Number|navigator|netscape|Object|Option|Packages|Password|Plugin|Radio|RegExp|Reset|Select|String|Style|Submit|screen|sun|Text|Textarea|window|XMLHttpRequest)\\b",
"name": "support.class.js"
},
{
"match": "\\b(s(h(ift|ow(Mod(elessDialog|alDialog)|Help))|croll(X|By(Pages|Lines)?|Y|To)?|t(op|rike)|i(n|zeToContent|debar|gnText)|ort|u(p|b(str(ing)?)?)|pli(ce|t)|e(nd|t(Re(sizable|questHeader)|M(i(nutes|lliseconds)|onth)|Seconds|Ho(tKeys|urs)|Year|Cursor|Time(out)?|Interval|ZOptions|Date|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(ome|andleEvent)|navigate|c(har(CodeAt|At)|o(s|n(cat|textual|firm)|mpile)|eil|lear(Timeout|Interval)?|a(ptureEvents|ll)|reate(StyleSheet|Popup|EventObject))|t(o(GMTString|S(tring|ource)|U(TCString|pperCase)|Lo(caleString|werCase))|est|a(n|int(Enabled)?))|i(s(NaN|Finite)|ndexOf|talics)|d(isableExternalCapture|ump|etachEvent)|u(n(shift|taint|escape|watch)|pdateCommands)|j(oin|avaEnabled)|p(o(p|w)|ush|lugins.refresh|a(ddings|rse(Int|Float)?)|r(int|ompt|eference))|e(scape|nableExternalCapture|val|lementFromPoint|x(p|ec(Script|Command)?))|valueOf|UTC|queryCommand(State|Indeterm|Enabled|Value)|f(i(nd|le(ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(nt(size|color)|rward)|loor|romCharCode)|watch|l(ink|o(ad|g)|astIndexOf)|a(sin|nchor|cos|t(tachEvent|ob|an(2)?)|pply|lert|b(s|ort))|r(ou(nd|teEvents)|e(size(By|To)|calc|turnValue|place|verse|l(oad|ease(Capture|Events)))|andom)|g(o|et(ResponseHeader|M(i(nutes|lliseconds)|onth)|Se(conds|lection)|Hours|Year|Time(zoneOffset)?|Da(y|te)|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Da(y|te)|FullYear)|FullYear|A(ttention|llResponseHeaders)))|m(in|ove(B(y|elow)|To(Absolute)?|Above)|ergeAttributes|a(tch|rgins|x))|b(toa|ig|o(ld|rderWidths)|link|ack))\\b(?=\\()",
"name": "support.function.js"
},
{
"match": "\\b(s(ub(stringData|mit)|plitText|e(t(NamedItem|Attribute(Node)?)|lect))|has(ChildNodes|Feature)|namedItem|c(l(ick|o(se|neNode))|reate(C(omment|DATASection|aption)|T(Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(ntityReference|lement)|Attribute))|tabIndex|i(nsert(Row|Before|Cell|Data)|tem)|open|delete(Row|C(ell|aption)|T(Head|Foot)|Data)|focus|write(ln)?|a(dd|ppend(Child|Data))|re(set|place(Child|Data)|move(NamedItem|Child|Attribute(Node)?)?)|get(NamedItem|Element(sBy(Name|TagName)|ById)|Attribute(Node)?)|blur)\\b(?=\\()",
"name": "support.function.dom.js"
},
{
"match": "(?<=\\.)(s(ystemLanguage|cr(ipts|ollbars|een(X|Y|Top|Left))|t(yle(Sheets)?|atus(Text|bar)?)|ibling(Below|Above)|ource|uffixes|e(curity(Policy)?|l(ection|f)))|h(istory|ost(name)?|as(h|Focus))|y|X(MLDocument|SLDocument)|n(ext|ame(space(s|URI)|Prop))|M(IN_VALUE|AX_VALUE)|c(haracterSet|o(n(structor|trollers)|okieEnabled|lorDepth|mp(onents|lete))|urrent|puClass|l(i(p(boardData)?|entInformation)|osed|asses)|alle(e|r)|rypto)|t(o(olbar|p)|ext(Transform|Indent|Decoration|Align)|ags)|SQRT(1_2|2)|i(n(ner(Height|Width)|put)|ds|gnoreCase)|zIndex|o(scpu|n(readystatechange|Line)|uter(Height|Width)|p(sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(i(splay|alog(Height|Top|Width|Left|Arguments)|rectories)|e(scription|fault(Status|Ch(ecked|arset)|View)))|u(ser(Profile|Language|Agent)|n(iqueID|defined)|pdateInterval)|_content|p(ixelDepth|ort|ersonalbar|kcs11|l(ugins|atform)|a(thname|dding(Right|Bottom|Top|Left)|rent(Window|Layer)?|ge(X(Offset)?|Y(Offset)?))|r(o(to(col|type)|duct(Sub)?|mpter)|e(vious|fix)))|e(n(coding|abledPlugin)|x(ternal|pando)|mbeds)|v(isibility|endor(Sub)?|Linkcolor)|URLUnencoded|P(I|OSITIVE_INFINITY)|f(ilename|o(nt(Size|Family|Weight)|rmName)|rame(s|Element)|gColor)|E|whiteSpace|l(i(stStyleType|n(eHeight|kColor))|o(ca(tion(bar)?|lName)|wsrc)|e(ngth|ft(Context)?)|a(st(M(odified|atch)|Index|Paren)|yer(s|X)|nguage))|a(pp(MinorVersion|Name|Co(deName|re)|Version)|vail(Height|Top|Width|Left)|ll|r(ity|guments)|Linkcolor|bove)|r(ight(Context)?|e(sponse(XML|Text)|adyState))|global|x|m(imeTypes|ultiline|enubar|argin(Right|Bottom|Top|Left))|L(N(10|2)|OG(10E|2E))|b(o(ttom|rder(Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(Color|Image)))\\b",
"name": "support.constant.js"
},
{
"match": "(?<=\\.)(s(hape|ystemId|c(heme|ope|rolling)|ta(ndby|rt)|ize|ummary|pecified|e(ctionRowIndex|lected(Index)?)|rc)|h(space|t(tpEquiv|mlFor)|e(ight|aders)|ref(lang)?)|n(o(Resize|tation(s|Name)|Shade|Href|de(Name|Type|Value)|Wrap)|extSibling|ame)|c(h(ildNodes|Off|ecked|arset)?|ite|o(ntent|o(kie|rds)|de(Base|Type)?|l(s|Span|or)|mpact)|ell(s|Spacing|Padding)|l(ear|assName)|aption)|t(ype|Bodies|itle|Head|ext|a(rget|gName)|Foot)|i(sMap|ndex|d|m(plementation|ages))|o(ptions|wnerDocument|bject)|d(i(sabled|r)|o(c(type|umentElement)|main)|e(clare|f(er|ault(Selected|Checked|Value)))|at(eTime|a))|useMap|p(ublicId|arentNode|r(o(file|mpt)|eviousSibling))|e(n(ctype|tities)|vent|lements)|v(space|ersion|alue(Type)?|Link|Align)|URL|f(irstChild|orm(s)?|ace|rame(Border)?)|width|l(ink(s)?|o(ngDesc|wSrc)|a(stChild|ng|bel))|a(nchors|c(ce(ssKey|pt(Charset)?)|tion)|ttributes|pplets|l(t|ign)|r(chive|eas)|xis|Link|bbr)|r(ow(s|Span|Index)|ules|e(v|ferrer|l|adOnly))|m(ultiple|e(thod|dia)|a(rgin(Height|Width)|xLength))|b(o(dy|rder)|ackground|gColor))\\b",
"name": "support.constant.dom.js"
},
{
"match": "\\b(ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR|WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR)\\b",
"name": "support.constant.dom.js"
},
{
"match": "\\bon(R(ow(s(inserted|delete)|e(nter|xit))|e(s(ize(start|end)?|et)|adystatechange))|Mouse(o(ut|ver)|down|up|move)|B(efore(cut|deactivate|u(nload|pdate)|p(aste|rint)|editfocus|activate)|lur)|S(croll|top|ubmit|elect(start|ionchange)?)|H(over|elp)|C(hange|ont(extmenu|rolselect)|ut|ellchange|l(ick|ose))|D(eactivate|ata(setc(hanged|omplete)|available)|r(op|ag(start|over|drop|en(ter|d)|leave)?)|blclick)|Unload|P(aste|ropertychange)|Error(update)?|Key(down|up|press)|Focus|Load|A(ctivate|fter(update|print)|bort))\\b",
"name": "support.function.event-handler.js"
},
{
"match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=",
"name": "keyword.operator.js"
},
{
"match": "\\b(Infinity|NaN|undefined)\\b",
"name": "constant.language.js"
},
{
"begin": "(?<=[=(:]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.js"
}
},
"end": "(/)[igm]*",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.js"
}
},
"name": "string.regexp.js",
"patterns": [
{
"include": "source.js.regexp"
}
]
},
{
"match": "\\;",
"name": "punctuation.terminator.statement.js"
},
{
"match": ",[ |\\t]*",
"name": "meta.delimiter.object.comma.js"
},
{
"match": "\\.",
"name": "meta.delimiter.method.period.js"
},
{
"captures": {
"1": {
"name": "punctuation.section.scope.begin.js"
},
"2": {
"name": "punctuation.section.scope.end.js"
}
},
"comment": "Allows the special return snippet to fire.",
"match": "(\\{)(\\})"
},
{
"match": "\\{|\\}",
"name": "meta.brace.curly.js"
},
{
"match": "\\(|\\)",
"name": "meta.brace.round.js"
},
{
"match": "\\[|\\]",
"name": "meta.brace.square.js"
}
],
"repository": {
"function-params": {
"patterns": [
{
"begin": "(?![\\s,)])",
"end": "(?=[,)])",
"patterns": [
{
"match": "\\G[$_a-zA-Z][$_a-zA-Z0-9]*",
"name": "variable.parameter.function.js"
},
{
"include": "$self"
}
]
}
]
}
},
"scopeName": "source.js"
}

29
lib/Grammar/Registry.php

@ -0,0 +1,29 @@
<?php
/** @license MIT
* Copyright 2021 Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace dW\Highlighter\Grammar;
class Registry {
protected static array $grammars = [];
public static function add(string $grammarPath): bool {
if (!file_exists($grammarPath)) {
throw new \Exception("Path \"$grammarPath\" either does not exist or you do not have permission to view the file.");
}
if (isset(self::$grammars[$grammarPath])) {
return true;
}
$grammar = json_decode(file_get_contents($grammarPath), true);
if ($grammar === null) {
throw new \Exception("\"$grammarPath\" is not a valid grammar file.");
}
self::$grammars[$grammarPath] = $grammar;
return true;
}
}

5
package.json

@ -0,0 +1,5 @@
{
"devDependencies": {
"season": "^6.0.2"
}
}

68
run

@ -0,0 +1,68 @@
#!/usr/bin/env bash
cwd=$(pwd)
PATH="$cwd/node_modules/.bin:$PATH"
fail() {
help
exit 1
}
help() {
printf "This script is used to build language grammars from Atom's various github
repositories. To build these grammars the following packages must be installed
on a unix-based system:
* bash >=5.0
* bash-task-runner >=0.9.0
* composer >=2.0.6
* coreutils >=8.0
* gnu parallel >=20180922
* yarn >=1.22.10
Arch Linux:
\`\`\`
pacman -S composer parallel yarn
yarn global add bash-task-runner
\`\`\`
macOS:
\`\`\`
brew install bash composer coreutils parallel yarn
echo \"/usr/local/bin/bash\" >> /etc/shells
chsh -s /usr/local/bin/bash
yarn global add bash-task-runner
\`\`\`
Building the grammars is then a matter of running the following commands from the project folder:
\`\`\`
./run init
./run build
\`\`\`
"
}
shopt -s globstar extglob || fail
if [ ! -x "$(which parallel)" ]; then fail; fi
# Include runner
source $HOME/.config/yarn/global/node_modules/bash-task-runner/src/runner.sh || fail
runner_default_task="build"
task_init() {
yarn install
mkdir -p "$cwd"/deps
printf "language-css
language-html
language-javascript
language-php
language-shellscript
language-sql
language-typescript
language-xml" | parallel "git clone https://github.com/atom/{}.git \"$cwd\"/deps/{}"
}
task_build() {
}

249
yarn.lock

@ -0,0 +1,249 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
camelcase@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
cliui@^3.0.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
wrap-ansi "^2.0.0"
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
coffee-script@^1.10.0:
version "1.12.7"
resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53"
integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
cson-parser@^1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/cson-parser/-/cson-parser-1.3.5.tgz#7ec675e039145533bf2a6a856073f1599d9c2d24"
integrity sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ=
dependencies:
coffee-script "^1.10.0"
decamelize@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
fs-plus@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/fs-plus/-/fs-plus-3.1.1.tgz#02c085ba0a013084cff2f3e89b17c60c1d9b4ab5"
integrity sha512-Se2PJdOWXqos1qVTkvqqjb0CSnfBnwwD+pq+z4ksT+e97mEShod/hrNg0TRCCsXPbJzcIq+NuzQhigunMWMJUA==
dependencies:
async "^1.5.2"
mkdirp "^0.5.1"
rimraf "^2.5.2"
underscore-plus "1.x"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
glob@^7.1.3:
version "7.1.7"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.0.4"
once "^1.3.0"
path-is-absolute "^1.0.0"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
dependencies:
number-is-nan "^1.0.0"
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
dependencies:
invert-kv "^1.0.0"
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
minimist "^1.2.5"
number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
os-locale@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
dependencies:
lcid "^1.0.0"
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
rimraf@^2.5.2:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
glob "^7.1.3"
season@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/season/-/season-6.0.2.tgz#9da58fb1ddd24824d7621b2dc63a7123b50217b6"
integrity sha1-naWPsd3SSCTXYhstxjpxI7UCF7Y=
dependencies:
cson-parser "^1.3.0"
fs-plus "^3.0.0"
yargs "^3.23.0"
string-width@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
dependencies:
code-point-at "^1.0.0"
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
dependencies:
ansi-regex "^2.0.0"
underscore-plus@1.x:
version "1.7.0"
resolved "https://registry.yarnpkg.com/underscore-plus/-/underscore-plus-1.7.0.tgz#107f1900c520ac1fefe4edec6580a7ff08a99d0f"
integrity sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA==
dependencies:
underscore "^1.9.1"
underscore@^1.9.1:
version "1.13.1"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==
window-size@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
y18n@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
yargs@^3.23.0:
version "3.32.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995"
integrity sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=
dependencies:
camelcase "^2.0.1"
cliui "^3.0.3"
decamelize "^1.1.1"
os-locale "^1.4.0"
string-width "^1.0.1"
window-size "^0.1.4"
y18n "^3.2.0"
Loading…
Cancel
Save