diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 1dc0bbe6d..325224a35 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -8,7 +8,7 @@ Tip! Don't write this stuff manually. --> -**Prettier 1.8.1** +**Prettier 1.8.2** [Playground link](https://prettier.io/playground/#.....) ```sh # Options (if any): diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fb21584d..f9e6eaab6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# 1.8.2 + +[link](https://github.com/prettier/prettier/compare/1.8.1...1.8.2) + +* Markdown: Don't break on links (#3204 by ikatyang) +* Markdown: Add `--no-prose-wrap` option (#3199 by ikatyang) +* TypeScript: Parenthesis around TSAsExpression inside TSAbstractClassDeclaration (#3191 by duailibe) +* JSON: Print JSON top comments as leading comments of root node (#3187 by duailibe) + # 1.8.1 [link](https://github.com/prettier/prettier/compare/1.8.0...1.8.1) diff --git a/package.json b/package.json index 4e7376f90..a7ecf21fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "1.8.1", + "version": "1.8.2", "description": "Prettier is an opinionated code formatter", "bin": { "prettier": "./bin/prettier.js" diff --git a/website/static/lib/index.js b/website/static/lib/index.js index 2f7caefce..d88510ed1 100644 --- a/website/static/lib/index.js +++ b/website/static/lib/index.js @@ -145,7 +145,7 @@ precedingNode=child;left=middle+1;continue;}if(locEnd(comment)-locStart(child)<= // have encountered so far. followingNode=child;right=middle;continue;}/* istanbul ignore next */throw new Error("Comment location overlaps with node location");}// We don't want comments inside of different expressions inside of the same // template literal to move to another expression. -if(comment.enclosingNode&&comment.enclosingNode.type==="TemplateLiteral"){var quasis=comment.enclosingNode.quasis;var commentIndex=findExpressionIndexForComment(quasis,comment);if(precedingNode&&findExpressionIndexForComment(quasis,precedingNode)!==commentIndex){precedingNode=null;}if(followingNode&&findExpressionIndexForComment(quasis,followingNode)!==commentIndex){followingNode=null;}}if(precedingNode){comment.precedingNode=precedingNode;}if(followingNode){comment.followingNode=followingNode;}}function attach(comments,ast,text){if(!Array.isArray(comments)){return;}var tiesToBreak=[];comments.forEach(function(comment,i){decorateComment(ast,comment,text);var precedingNode=comment.precedingNode;var enclosingNode=comment.enclosingNode;var followingNode=comment.followingNode;var isLastComment=comments.length-1===i;if(util$2.hasNewline(text,locStart(comment),{backwards:true})){// If a comment exists on its own line, prefer a leading comment. +if(comment.enclosingNode&&comment.enclosingNode.type==="TemplateLiteral"){var quasis=comment.enclosingNode.quasis;var commentIndex=findExpressionIndexForComment(quasis,comment);if(precedingNode&&findExpressionIndexForComment(quasis,precedingNode)!==commentIndex){precedingNode=null;}if(followingNode&&findExpressionIndexForComment(quasis,followingNode)!==commentIndex){followingNode=null;}}if(precedingNode){comment.precedingNode=precedingNode;}if(followingNode){comment.followingNode=followingNode;}}function attach(comments,ast,text,options){if(!Array.isArray(comments)){return;}var tiesToBreak=[];comments.forEach(function(comment,i){if(options.parser==="json"&&locStart(comment)-locStart(ast)<=0){addLeadingComment(ast,comment);return;}decorateComment(ast,comment,text);var precedingNode=comment.precedingNode;var enclosingNode=comment.enclosingNode;var followingNode=comment.followingNode;var isLastComment=comments.length-1===i;if(util$2.hasNewline(text,locStart(comment),{backwards:true})){// If a comment exists on its own line, prefer a leading comment. // We also need to check if it's the first line of the file. if(handleLastFunctionArgComments(text,precedingNode,enclosingNode,followingNode,comment)||handleMemberExpressionComments(enclosingNode,followingNode,comment)||handleIfStatementComments(text,precedingNode,enclosingNode,followingNode,comment)||handleTryStatementComments(enclosingNode,followingNode,comment)||handleClassComments(enclosingNode,precedingNode,followingNode,comment)||handleImportSpecifierComments(enclosingNode,comment)||handleObjectPropertyComments(enclosingNode,comment)||handleForComments(enclosingNode,precedingNode,comment)||handleUnionTypeComments(precedingNode,enclosingNode,followingNode,comment)||handleOnlyComments(enclosingNode,ast,comment,isLastComment)||handleImportDeclarationComments(text,enclosingNode,precedingNode,comment)||handleAssignmentPatternComments(enclosingNode,comment)||handleMethodNameComments(text,enclosingNode,precedingNode,comment)){// We're good }else if(followingNode){// Always a leading comment. @@ -232,7 +232,7 @@ if(isBlock){return concat([contents,util$2.hasNewline(options.originalText,locEn // if this a comment on its own line; normal trailing comments are // always at the end of another expression. var isLineBeforeEmpty=util$2.isPreviousLineEmpty(options.originalText,comment);return lineSuffix(concat([hardline,isLineBeforeEmpty?hardline:"",contents]));}else if(isBlock){// Trailing block comments never need a newline -return concat([" ",contents]);}return concat([lineSuffix(" "+contents),!isBlock?breakParent:""]);}function printDanglingComments(path,options,sameIndent){var parts=[];var node=path.getValue();if(!node||!node.comments){return"";}path.each(function(commentPath){var comment=commentPath.getValue();if(comment&&!comment.leading&&!comment.trailing){parts.push(printComment(commentPath,options));}},"comments");if(parts.length===0){return"";}if(sameIndent){return join(hardline,parts);}return indent(concat([hardline,join(hardline,parts)]));}function prependCursorPlaceholder(path,options,printed){if(path.getNode()===options.cursorNode&&path.getValue()){return concat([cursor,printed]);}return printed;}function printComments(path,print,options,needsSemi){var value=path.getValue();var printed=print(path);var comments=value&&value.comments;if(!comments||comments.length===0){return prependCursorPlaceholder(path,options,printed);}var leadingParts=[];var trailingParts=[needsSemi?";":"",printed];path.each(function(commentPath){var comment=commentPath.getValue();var leading=comment.leading;var trailing=comment.trailing;if(leading){var contents=printLeadingComment(commentPath,print,options);if(!contents){return;}leadingParts.push(contents);var text=options.originalText;if(util$2.hasNewline(text,util$2.skipNewline(text,util$2.locEnd(comment)))){leadingParts.push(hardline);}}else if(trailing){trailingParts.push(printTrailingComment(commentPath,print,options));}},"comments");return prependCursorPlaceholder(path,options,concat(leadingParts.concat(trailingParts)));}var comments$1={attach:attach,printComments:printComments,printDanglingComments:printDanglingComments,getSortedChildNodes:getSortedChildNodes};var name="prettier";var version$1="1.8.1";var description="Prettier is an opinionated code formatter";var bin={"prettier":"./bin/prettier.js"};var repository="prettier/prettier";var homepage="https://prettier.io";var author="James Long";var license="MIT";var main="./index.js";var engines={"node":">=4"};var dependencies={"babel-code-frame":"7.0.0-alpha.12","babylon":"7.0.0-beta.28","camelcase":"4.1.0","chalk":"2.1.0","cjk-regex":"1.0.2","cosmiconfig":"3.1.0","dashify":"0.2.2","diff":"3.2.0","emoji-regex":"6.5.1","escape-string-regexp":"1.0.5","esutils":"2.0.2","flow-parser":"0.51.1","get-stream":"3.0.0","globby":"6.1.0","graphql":"0.10.5","ignore":"3.3.7","jest-docblock":"21.3.0-beta.7","jest-validate":"21.1.0","leven":"2.1.0","mem":"1.1.0","minimatch":"3.0.4","minimist":"1.2.0","parse5":"3.0.3","postcss-less":"1.1.1","postcss-media-query-parser":"0.2.3","postcss-scss":"1.0.2","postcss-selector-parser":"2.2.3","postcss-values-parser":"1.3.1","remark-frontmatter":"1.1.0","remark-parse":"4.0.0","semver":"5.4.1","string-width":"2.1.1","strip-bom":"3.0.0","typescript":"2.5.3","typescript-eslint-parser":"git://github.com/eslint/typescript-eslint-parser.git#9c71a627da36e97da52ed2731d58509c952b67ae","unified":"6.1.5"};var devDependencies={"babel-cli":"6.24.1","babel-preset-es2015":"6.24.1","codecov":"2.2.0","cross-env":"5.0.5","eslint":"4.1.1","eslint-friendly-formatter":"3.0.0","eslint-plugin-import":"2.6.1","eslint-plugin-prettier":"2.1.2","eslint-plugin-react":"7.1.0","jest":"21.1.0","mkdirp":"0.5.1","prettier":"1.8.0","rimraf":"2.6.2","rollup":"0.41.6","rollup-plugin-commonjs":"7.0.2","rollup-plugin-json":"2.1.1","rollup-plugin-node-builtins":"2.0.0","rollup-plugin-node-globals":"1.1.0","rollup-plugin-node-resolve":"2.0.0","rollup-plugin-replace":"1.1.1","shelljs":"0.7.8","strip-ansi":"4.0.0","sw-toolbox":"3.6.0","uglify-es":"3.0.28","webpack":"2.6.1"};var scripts={"prepublishOnly":"echo \"Error: must publish from dist/\" && exit 1","prepare-release":"yarn && yarn build && yarn test:dist","test":"jest","test:dist":"cross-env NODE_ENV=production yarn test","test-integration":"jest tests_integration","lint":"cross-env EFF_NO_LINK_RULES=true eslint . --format node_modules/eslint-friendly-formatter","build":"node ./scripts/build/build.js","check-deps":"node ./scripts/check-deps.js"};var _package={name:name,version:version$1,description:description,bin:bin,repository:repository,homepage:homepage,author:author,license:license,main:main,engines:engines,dependencies:dependencies,devDependencies:devDependencies,scripts:scripts};var _package$1=Object.freeze({name:name,version:version$1,description:description,bin:bin,repository:repository,homepage:homepage,author:author,license:license,main:main,engines:engines,dependencies:dependencies,devDependencies:devDependencies,scripts:scripts,default:_package});var assert$2=require$$0;var util$6=util$3;var startsWithNoLookaheadToken$1=util$6.startsWithNoLookaheadToken;function FastPath$1(value){assert$2.ok(this instanceof FastPath$1);this.stack=[value];}// The name of the current property is always the penultimate element of +return concat([" ",contents]);}return concat([lineSuffix(" "+contents),!isBlock?breakParent:""]);}function printDanglingComments(path,options,sameIndent){var parts=[];var node=path.getValue();if(!node||!node.comments){return"";}path.each(function(commentPath){var comment=commentPath.getValue();if(comment&&!comment.leading&&!comment.trailing){parts.push(printComment(commentPath,options));}},"comments");if(parts.length===0){return"";}if(sameIndent){return join(hardline,parts);}return indent(concat([hardline,join(hardline,parts)]));}function prependCursorPlaceholder(path,options,printed){if(path.getNode()===options.cursorNode&&path.getValue()){return concat([cursor,printed]);}return printed;}function printComments(path,print,options,needsSemi){var value=path.getValue();var printed=print(path);var comments=value&&value.comments;if(!comments||comments.length===0){return prependCursorPlaceholder(path,options,printed);}var leadingParts=[];var trailingParts=[needsSemi?";":"",printed];path.each(function(commentPath){var comment=commentPath.getValue();var leading=comment.leading;var trailing=comment.trailing;if(leading){var contents=printLeadingComment(commentPath,print,options);if(!contents){return;}leadingParts.push(contents);var text=options.originalText;if(util$2.hasNewline(text,util$2.skipNewline(text,util$2.locEnd(comment)))){leadingParts.push(hardline);}}else if(trailing){trailingParts.push(printTrailingComment(commentPath,print,options));}},"comments");return prependCursorPlaceholder(path,options,concat(leadingParts.concat(trailingParts)));}var comments$1={attach:attach,printComments:printComments,printDanglingComments:printDanglingComments,getSortedChildNodes:getSortedChildNodes};var name="prettier";var version$1="1.8.2";var description="Prettier is an opinionated code formatter";var bin={"prettier":"./bin/prettier.js"};var repository="prettier/prettier";var homepage="https://prettier.io";var author="James Long";var license="MIT";var main="./index.js";var engines={"node":">=4"};var dependencies={"babel-code-frame":"7.0.0-alpha.12","babylon":"7.0.0-beta.28","camelcase":"4.1.0","chalk":"2.1.0","cjk-regex":"1.0.2","cosmiconfig":"3.1.0","dashify":"0.2.2","diff":"3.2.0","emoji-regex":"6.5.1","escape-string-regexp":"1.0.5","esutils":"2.0.2","flow-parser":"0.51.1","get-stream":"3.0.0","globby":"6.1.0","graphql":"0.10.5","ignore":"3.3.7","jest-docblock":"21.3.0-beta.7","jest-validate":"21.1.0","leven":"2.1.0","mem":"1.1.0","minimatch":"3.0.4","minimist":"1.2.0","parse5":"3.0.3","postcss-less":"1.1.1","postcss-media-query-parser":"0.2.3","postcss-scss":"1.0.2","postcss-selector-parser":"2.2.3","postcss-values-parser":"1.3.1","remark-frontmatter":"1.1.0","remark-parse":"4.0.0","semver":"5.4.1","string-width":"2.1.1","strip-bom":"3.0.0","typescript":"2.5.3","typescript-eslint-parser":"git://github.com/eslint/typescript-eslint-parser.git#9c71a627da36e97da52ed2731d58509c952b67ae","unified":"6.1.5"};var devDependencies={"babel-cli":"6.24.1","babel-preset-es2015":"6.24.1","codecov":"2.2.0","cross-env":"5.0.5","eslint":"4.1.1","eslint-friendly-formatter":"3.0.0","eslint-plugin-import":"2.6.1","eslint-plugin-prettier":"2.1.2","eslint-plugin-react":"7.1.0","jest":"21.1.0","mkdirp":"0.5.1","prettier":"1.8.0","rimraf":"2.6.2","rollup":"0.41.6","rollup-plugin-commonjs":"7.0.2","rollup-plugin-json":"2.1.1","rollup-plugin-node-builtins":"2.0.0","rollup-plugin-node-globals":"1.1.0","rollup-plugin-node-resolve":"2.0.0","rollup-plugin-replace":"1.1.1","shelljs":"0.7.8","strip-ansi":"4.0.0","sw-toolbox":"3.6.0","uglify-es":"3.0.28","webpack":"2.6.1"};var scripts={"prepublishOnly":"echo \"Error: must publish from dist/\" && exit 1","prepare-release":"yarn && yarn build && yarn test:dist","test":"jest","test:dist":"cross-env NODE_ENV=production yarn test","test-integration":"jest tests_integration","lint":"cross-env EFF_NO_LINK_RULES=true eslint . --format node_modules/eslint-friendly-formatter","build":"node ./scripts/build/build.js","check-deps":"node ./scripts/check-deps.js"};var _package={name:name,version:version$1,description:description,bin:bin,repository:repository,homepage:homepage,author:author,license:license,main:main,engines:engines,dependencies:dependencies,devDependencies:devDependencies,scripts:scripts};var _package$1=Object.freeze({name:name,version:version$1,description:description,bin:bin,repository:repository,homepage:homepage,author:author,license:license,main:main,engines:engines,dependencies:dependencies,devDependencies:devDependencies,scripts:scripts,default:_package});var assert$2=require$$0;var util$6=util$3;var startsWithNoLookaheadToken$1=util$6.startsWithNoLookaheadToken;function FastPath$1(value){assert$2.ok(this instanceof FastPath$1);this.stack=[value];}// The name of the current property is always the penultimate element of // this.stack, and always a String. FastPath$1.prototype.getName=function getName(){var s=this.stack;var len=s.length;if(len>1){return s[len-2];}// Since the name is always a string, null is a safe sentinel value to // return if we do not know the name of the (root) value. @@ -264,7 +264,7 @@ if(node.type==="Identifier"){return false;}if(parent.type==="ParenthesizedExpres if((parent.type==="ClassDeclaration"||parent.type==="ClassExpression")&&parent.superClass===node&&(node.type==="ArrowFunctionExpression"||node.type==="AssignmentExpression"||node.type==="AwaitExpression"||node.type==="BinaryExpression"||node.type==="ConditionalExpression"||node.type==="LogicalExpression"||node.type==="NewExpression"||node.type==="ObjectExpression"||node.type==="ParenthesizedExpression"||node.type==="SequenceExpression"||node.type==="TaggedTemplateExpression"||node.type==="UnaryExpression"||node.type==="UpdateExpression"||node.type==="YieldExpression")){return true;}if(parent.type==="ArrowFunctionExpression"&&parent.body===node&&node.type!=="SequenceExpression"&&// these have parens added anyway startsWithNoLookaheadToken$1(node,/* forbidFunctionAndClass */false)||parent.type==="ExpressionStatement"&&startsWithNoLookaheadToken$1(node,/* forbidFunctionAndClass */true)){return true;}switch(node.type){case"CallExpression":{var firstParentNotMemberExpression=parent;var _i17=0;while(firstParentNotMemberExpression&&firstParentNotMemberExpression.type==="MemberExpression"){firstParentNotMemberExpression=this.getParentNode(++_i17);}if(firstParentNotMemberExpression.type==="NewExpression"&&firstParentNotMemberExpression.callee===this.getParentNode(_i17-1)){return true;}return false;}case"SpreadElement":case"SpreadProperty":return parent.type==="MemberExpression"&&name==="object"&&parent.object===node;case"UpdateExpression":if(parent.type==="UnaryExpression"){return node.prefix&&(node.operator==="++"&&parent.operator==="+"||node.operator==="--"&&parent.operator==="-");}// else fallthrough case"UnaryExpression":switch(parent.type){case"UnaryExpression":return node.operator===parent.operator&&(node.operator==="+"||node.operator==="-");case"MemberExpression":return name==="object"&&parent.object===node;case"TaggedTemplateExpression":return true;case"NewExpression":case"CallExpression":return name==="callee"&&parent.callee===node;case"BinaryExpression":return parent.operator==="**"&&name==="left";default:return false;}case"BinaryExpression":{if(parent.type==="UpdateExpression"){return true;}var isLeftOfAForStatement=function isLeftOfAForStatement(node){var i=0;while(node){var _parent=_this.getParentNode(i++);if(!_parent){return false;}if(_parent.type==="ForStatement"&&_parent.init===node){return true;}node=_parent;}return false;};if(node.operator==="in"&&isLeftOfAForStatement(node)){return true;}}// fallthrough -case"TSTypeAssertionExpression":case"TSAsExpression":case"LogicalExpression":switch(parent.type){case"ConditionalExpression":return node.type==="TSAsExpression";case"CallExpression":case"NewExpression":return name==="callee"&&parent.callee===node;case"ClassDeclaration":return name==="superClass"&&parent.superClass===node;case"TSTypeAssertionExpression":case"TaggedTemplateExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"ExperimentalSpreadProperty":case"BindExpression":case"AwaitExpression":case"TSAsExpression":case"TSNonNullExpression":return true;case"MemberExpression":return name==="object"&&parent.object===node;case"AssignmentExpression":return parent.left===node&&(node.type==="TSTypeAssertionExpression"||node.type==="TSAsExpression");case"BinaryExpression":case"LogicalExpression":{if(!node.operator&&node.type!=="TSTypeAssertionExpression"){return true;}var po=parent.operator;var pp=util$6.getPrecedence(po);var no=node.operator;var np=util$6.getPrecedence(no);if(pp>np){return true;}if((po==="||"||po==="??")&&no==="&&"){return true;}if(pp===np&&name==="right"){assert$2.strictEqual(parent.right,node);return true;}if(pp===np&&!util$6.shouldFlatten(po,no)){return true;}// Add parenthesis when working with binary operators +case"TSTypeAssertionExpression":case"TSAsExpression":case"LogicalExpression":switch(parent.type){case"ConditionalExpression":return node.type==="TSAsExpression";case"CallExpression":case"NewExpression":return name==="callee"&&parent.callee===node;case"ClassDeclaration":case"TSAbstractClassDeclaration":return name==="superClass"&&parent.superClass===node;case"TSTypeAssertionExpression":case"TaggedTemplateExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"ExperimentalSpreadProperty":case"BindExpression":case"AwaitExpression":case"TSAsExpression":case"TSNonNullExpression":return true;case"MemberExpression":return name==="object"&&parent.object===node;case"AssignmentExpression":return parent.left===node&&(node.type==="TSTypeAssertionExpression"||node.type==="TSAsExpression");case"BinaryExpression":case"LogicalExpression":{if(!node.operator&&node.type!=="TSTypeAssertionExpression"){return true;}var po=parent.operator;var pp=util$6.getPrecedence(po);var no=node.operator;var np=util$6.getPrecedence(no);if(pp>np){return true;}if((po==="||"||po==="??")&&no==="&&"){return true;}if(pp===np&&name==="right"){assert$2.strictEqual(parent.right,node);return true;}if(pp===np&&!util$6.shouldFlatten(po,no)){return true;}// Add parenthesis when working with binary operators // It's not stricly needed but helps with code understanding if(util$6.isBitwiseOperator(po)){return true;}return false;}default:return false;}case"TSParenthesizedType":{var grandParent=this.getParentNode(1);if((parent.type==="TypeParameter"||parent.type==="VariableDeclarator"||parent.type==="TypeAnnotation"||parent.type==="GenericTypeAnnotation"||parent.type==="TSTypeReference")&&node.typeAnnotation.type==="TypeAnnotation"&&node.typeAnnotation.typeAnnotation.type!=="TSFunctionType"&&grandParent.type!=="TSTypeOperator"){return false;}// Delegate to inner TSParenthesizedType if(node.typeAnnotation.type==="TSParenthesizedType"){return false;}return true;}case"SequenceExpression":switch(parent.type){case"ReturnStatement":return false;case"ForStatement":// Although parentheses wouldn't hurt around sequence @@ -520,15 +520,15 @@ case"fill":{var _rem=width-pos;var parts=_doc.parts;if(parts.length===0){break;} shouldRemeasure=true;}// fallthrough case MODE_BREAK:if(lineSuffix.length){cmds.push([ind,mode,_doc]);[].push.apply(cmds,lineSuffix.reverse());lineSuffix=[];break;}if(_doc.literal){out.push(newLine);pos=0;}else{if(out.length>0){// Trim whitespace at the end of line while(out.length>0&&out[out.length-1].match(/^[^\S\n]*$/)){out.pop();}if(out.length){out[out.length-1]=out[out.length-1].replace(/[^\S\n]*$/,"");}}var indentLength=ind.indent*options.tabWidth;var _indentString=options.useTabs?"\t".repeat(ind.indent)+ind.align.tabs:" ".repeat(indentLength)+ind.align.spaces;out.push(newLine+_indentString);pos=indentLength+ind.align.spaces.length;}break;}break;default:}}}var cursorPlaceholderIndex=out.indexOf(cursor$2.placeholder);if(cursorPlaceholderIndex!==-1){var beforeCursor=out.slice(0,cursorPlaceholderIndex).join("");var afterCursor=out.slice(cursorPlaceholderIndex+1).join("");return{formatted:beforeCursor+afterCursor,cursor:beforeCursor.length};}return{formatted:out.join("")};}var docPrinter$1={printDocToString:printDocToString$2};var util$10=util$3;var docBuilders$8=docBuilders$1;var concat$7=docBuilders$8.concat;var join$6=docBuilders$8.join;var line$5=docBuilders$8.line;var hardline$7=docBuilders$8.hardline;var softline$6=docBuilders$8.softline;var fill$3=docBuilders$8.fill;var align$2=docBuilders$8.align;var docPrinter=docPrinter$1;var printDocToString$1=docPrinter.printDocToString;var escapeStringRegexp$2=index$14;// http://spec.commonmark.org/0.25/#ascii-punctuation-character -var asciiPunctuationPattern=escapeStringRegexp$2("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~");var SINGLE_LINE_NODE_TYPES=["heading","tableCell","footnoteDefinition"];var SIBLING_NODE_TYPES=["listItem","definition","footnoteDefinition"];var INLINE_NODE_TYPES=["inlineCode","emphasis","strong","delete","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break"];var INLINE_NODE_WRAPPER_TYPES=INLINE_NODE_TYPES.concat(["tableCell","paragraph"]);function genericPrint$4(path,options,print){var node=path.getValue();if(shouldRemainTheSameContent(path)){return concat$7(util$10.splitText(options.originalText.slice(node.position.start.offset,node.position.end.offset)).map(function(node){return node.type==="word"?node.value:node.value===""?"":printLine(path,line$5);}));}switch(node.type){case"root":return normalizeDoc(concat$7([printChildren$1(path,options,print),hardline$7]));case"paragraph":return printChildren$1(path,options,print,{postprocessor:fill$3});case"sentence":return printChildren$1(path,options,print);case"word":return getAncestorNode(path,"inlineCode")?node.value:node.value.replace(/(^|[^\\])\*/g,"$1\\*"// escape all unescaped `*` and `_` +var asciiPunctuationPattern=escapeStringRegexp$2("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~");var SINGLE_LINE_NODE_TYPES=["heading","tableCell","footnoteDefinition","link"];var SIBLING_NODE_TYPES=["listItem","definition","footnoteDefinition"];var INLINE_NODE_TYPES=["inlineCode","emphasis","strong","delete","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break"];var INLINE_NODE_WRAPPER_TYPES=INLINE_NODE_TYPES.concat(["tableCell","paragraph"]);function genericPrint$4(path,options,print){var node=path.getValue();if(shouldRemainTheSameContent(path)){return concat$7(util$10.splitText(options.originalText.slice(node.position.start.offset,node.position.end.offset)).map(function(node){return node.type==="word"?node.value:node.value===""?"":printLine(path,line$5,options);}));}switch(node.type){case"root":return normalizeDoc(concat$7([printChildren$1(path,options,print),hardline$7]));case"paragraph":return printChildren$1(path,options,print,{postprocessor:fill$3});case"sentence":return printChildren$1(path,options,print);case"word":return getAncestorNode(path,"inlineCode")?node.value:node.value.replace(/(^|[^\\])\*/g,"$1\\*"// escape all unescaped `*` and `_` ).replace(/\b(^|[^\\])_\b/g,"$1\\_");// `1_2_3` is not considered emphasis -case"whitespace":{var parentNode=path.getParentNode();var _index2=parentNode.children.indexOf(node);var nextNode=parentNode.children[_index2+1];// special prefix that may cause different meaning -if(nextNode&&nextNode.value.match(/^(#{1,6}|>+)|^(-|\+|\*)$/)){return node.value===""?"":" ";}return printLine(path,node.value===""?softline$6:line$5);}case"emphasis":{var _parentNode=path.getParentNode();var _index3=_parentNode.children.indexOf(node);var prevNode=_parentNode.children[_index3-1];var _nextNode=_parentNode.children[_index3+1];var hasPrevOrNextWord=// `1*2*3` is considered emphais but `1_2_3` is not -prevNode&&prevNode.type==="sentence"&&prevNode.children.length>0&&prevNode.children[prevNode.children.length-1].type==="word"&&prevNode.children[prevNode.children.length-1].value.match(new RegExp('[^'+asciiPunctuationPattern+']$'))||_nextNode&&_nextNode.type==="sentence"&&_nextNode.children.length>0&&_nextNode.children[0].type==="word"&&_nextNode.children[0].value.match(new RegExp('^[^'+asciiPunctuationPattern+']'));var style=hasPrevOrNextWord||getAncestorNode(path,"emphasis")?"*":"_";return concat$7([style,printChildren$1(path,options,print),style]);}case"strong":return concat$7(["**",printChildren$1(path,options,print),"**"]);case"delete":return concat$7(["~~",printChildren$1(path,options,print),"~~"]);case"inlineCode":{var backtickCount=util$10.getMaxContinuousCount(node.value,"`");var _style=backtickCount===1?"``":"`";var gap=backtickCount?printLine(path,line$5):"";return concat$7([_style,gap,printChildren$1(path,options,print),gap,_style]);}case"link":switch(options.originalText[node.position.start.offset]){case"<":return concat$7(["<",node.url,">"]);case"[":return concat$7(["[",printChildren$1(path,options,print),"](",printUrl(node.url,")"),node.title?' '+printTitle(node.title):"",")"]);default:return options.originalText.slice(node.position.start.offset,node.position.end.offset);}case"image":return concat$7(["![",node.alt||"","](",printUrl(node.url,")"),node.title?' '+printTitle(node.title):"",")"]);case"blockquote":return concat$7(["> ",align$2("> ",printChildren$1(path,options,print))]);case"heading":return concat$7(["#".repeat(node.depth)+" ",printChildren$1(path,options,print)]);case"code":{if(// the first char may point to `\n`, e.g. `\n\t\tbar`, just ignore it +case"whitespace":{var parentNode=path.getParentNode();var _index2=parentNode.children.indexOf(node);var nextNode=parentNode.children[_index2+1];// leading char that may cause different syntax +if(nextNode&&/^>|^([-+*]|#{1,6})$/.test(nextNode.value)){return node.value===""?"":" ";}return printLine(path,node.value===""?softline$6:line$5,options);}case"emphasis":{var _parentNode=path.getParentNode();var _index3=_parentNode.children.indexOf(node);var prevNode=_parentNode.children[_index3-1];var _nextNode=_parentNode.children[_index3+1];var hasPrevOrNextWord=// `1*2*3` is considered emphais but `1_2_3` is not +prevNode&&prevNode.type==="sentence"&&prevNode.children.length>0&&prevNode.children[prevNode.children.length-1].type==="word"&&new RegExp('[^'+asciiPunctuationPattern+']$').test(prevNode.children[prevNode.children.length-1].value)||_nextNode&&_nextNode.type==="sentence"&&_nextNode.children.length>0&&_nextNode.children[0].type==="word"&&new RegExp('^[^'+asciiPunctuationPattern+']').test(_nextNode.children[0].value);var style=hasPrevOrNextWord||getAncestorNode(path,"emphasis")?"*":"_";return concat$7([style,printChildren$1(path,options,print),style]);}case"strong":return concat$7(["**",printChildren$1(path,options,print),"**"]);case"delete":return concat$7(["~~",printChildren$1(path,options,print),"~~"]);case"inlineCode":{var backtickCount=util$10.getMaxContinuousCount(node.value,"`");var _style=backtickCount===1?"``":"`";var gap=backtickCount?printLine(path,line$5,options):"";return concat$7([_style,gap,printChildren$1(path,options,print),gap,_style]);}case"link":switch(options.originalText[node.position.start.offset]){case"<":return concat$7(["<",node.url,">"]);case"[":return concat$7(["[",printChildren$1(path,options,print),"](",printUrl(node.url,")"),node.title?' '+printTitle(node.title):"",")"]);default:return options.originalText.slice(node.position.start.offset,node.position.end.offset);}case"image":return concat$7(["![",node.alt||"","](",printUrl(node.url,")"),node.title?' '+printTitle(node.title):"",")"]);case"blockquote":return concat$7(["> ",align$2("> ",printChildren$1(path,options,print))]);case"heading":return concat$7(["#".repeat(node.depth)+" ",printChildren$1(path,options,print)]);case"code":{if(// the first char may point to `\n`, e.g. `\n\t\tbar`, just ignore it /^\n?( {4,}|\t)/.test(options.originalText.slice(node.position.start.offset,node.position.end.offset))){// indented code block return align$2(4,concat$7([" ".repeat(4),join$6(hardline$7,node.value.split("\n"))]));}// fenced code block var styleUnit=options.__inJsTemplate?"~":"`";var _style2=styleUnit.repeat(Math.max(3,util$10.getMaxContinuousCount(node.value,styleUnit)+1));return concat$7([_style2,node.lang||"",hardline$7,join$6(hardline$7,node.value.split("\n")),hardline$7,_style2]);}case"yaml":return concat$7(["---",hardline$7,node.value,hardline$7,"---"]);case"html":{var _parentNode2=path.getParentNode();return _parentNode2.type==="root"&&_parentNode2.children[_parentNode2.children.length-1]===node?node.value.trimRight():node.value;}case"list":{var nthSiblingIndex=getNthListSiblingIndex(node,path.getParentNode());var isGitDiffFriendlyOrderedList=node.ordered&&node.children.length>1&&/^\s*1(\.|\))/.test(options.originalText.slice(node.children[1].position.start.offset,node.children[1].position.end.offset));return printChildren$1(path,options,print,{processor:function processor(childPath,index){var prefix=node.ordered?(index===0?node.start:isGitDiffFriendlyOrderedList?1:node.start+index)+(nthSiblingIndex%2===0?". ":") "):nthSiblingIndex%2===0?"* ":"- ";return concat$7([prefix,align$2(prefix.length,childPath.call(print))]);}});}case"listItem":{var prefix=node.checked===null?"":node.checked?"[x] ":"[ ] ";return concat$7([prefix,align$2(prefix.length,printChildren$1(path,options,print))]);}case"thematicBreak":{var counter=getAncestorCounter(path,"list");if(counter===-1){return"---";}var _nthSiblingIndex=getNthListSiblingIndex(path.getParentNode(counter),path.getParentNode(counter+1));return _nthSiblingIndex%2===0?"---":"***";}case"linkReference":return concat$7(["[",printChildren$1(path,options,print),"]",node.referenceType==="full"?concat$7(["[",node.identifier,"]"]):node.referenceType==="collapsed"?"[]":""]);case"imageReference":switch(node.referenceType){case"full":return concat$7(["![",node.alt,"][",node.identifier,"]"]);default:return concat$7(["![",node.alt,"]",node.referenceType==="collapsed"?"[]":""]);}case"definition":return concat$7(["[",node.identifier,"]: ",printUrl(node.url),node.title===null?"":' '+printTitle(node.title)]);case"footnote":return concat$7(["[^",printChildren$1(path,options,print),"]"]);case"footnoteReference":return concat$7(["[^",node.identifier,"]"]);case"footnoteDefinition":return concat$7(["[^",node.identifier,"]: ",printChildren$1(path,options,print)]);case"table":return printTable(path,options,print);case"tableCell":return printChildren$1(path,options,print);case"break":return concat$7(["\\",hardline$7]);case"tableRow":// handled in "table" -default:throw new Error('Unknown markdown type '+JSON.stringify(node.type));}}function getNthListSiblingIndex(node,parentNode){return getNthSiblingIndex(node,parentNode,function(siblingNode){return siblingNode.ordered===node.ordered;});}function getNthSiblingIndex(node,parentNode,condition){condition=condition||function(){return true;};var index=-1;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=parentNode.children[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var childNode=_step.value;if(childNode.type===node.type&&condition(childNode)){index++;}else{index=-1;}if(childNode===node){return index;}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}}function getAncestorCounter(path,typeOrTypes){var types=[].concat(typeOrTypes);var counter=-1;var ancestorNode=void 0;while(ancestorNode=path.getParentNode(++counter)){if(types.indexOf(ancestorNode.type)!==-1){return counter;}}return-1;}function getAncestorNode(path,typeOrTypes){var counter=getAncestorCounter(path,typeOrTypes);return counter===-1?null:path.getParentNode(counter);}function printLine(path,lineOrSoftline){var isBreakable=!getAncestorNode(path,SINGLE_LINE_NODE_TYPES);return lineOrSoftline===line$5?isBreakable?line$5:" ":isBreakable?softline$6:"";}function printTable(path,options,print){var node=path.getValue();var contents=[];// { [rowIndex: number]: { [columnIndex: number]: string } } +default:throw new Error('Unknown markdown type '+JSON.stringify(node.type));}}function getNthListSiblingIndex(node,parentNode){return getNthSiblingIndex(node,parentNode,function(siblingNode){return siblingNode.ordered===node.ordered;});}function getNthSiblingIndex(node,parentNode,condition){condition=condition||function(){return true;};var index=-1;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=parentNode.children[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var childNode=_step.value;if(childNode.type===node.type&&condition(childNode)){index++;}else{index=-1;}if(childNode===node){return index;}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}}function getAncestorCounter(path,typeOrTypes){var types=[].concat(typeOrTypes);var counter=-1;var ancestorNode=void 0;while(ancestorNode=path.getParentNode(++counter)){if(types.indexOf(ancestorNode.type)!==-1){return counter;}}return-1;}function getAncestorNode(path,typeOrTypes){var counter=getAncestorCounter(path,typeOrTypes);return counter===-1?null:path.getParentNode(counter);}function printLine(path,lineOrSoftline,options){var isBreakable=options.proseWrap&&!getAncestorNode(path,SINGLE_LINE_NODE_TYPES);return lineOrSoftline===line$5?isBreakable?line$5:" ":isBreakable?softline$6:"";}function printTable(path,options,print){var node=path.getValue();var contents=[];// { [rowIndex: number]: { [columnIndex: number]: string } } path.map(function(rowPath){var rowContents=[];rowPath.map(function(cellPath){rowContents.push(printDocToString$1(cellPath.call(print),options).formatted);},"children");contents.push(rowContents);},"children");var columnMaxWidths=contents.reduce(function(currentWidths,rowContents){return currentWidths.map(function(width,columnIndex){return Math.max(width,util$10.getStringWidth(rowContents[columnIndex]));});},contents[0].map(function(){return 3;}// minimum width = 3 (---, :--, :-:, --:) ));return join$6(hardline$7,[printRow(contents[0]),printSeparator(),join$6(hardline$7,contents.slice(1).map(printRow))]);function printSeparator(){return concat$7(["| ",join$6(" | ",columnMaxWidths.map(function(width,index){switch(node.align[index]){case"left":return":"+"-".repeat(width-1);case"right":return"-".repeat(width-1)+":";case"center":return":"+"-".repeat(width-2)+":";default:return"-".repeat(width);}}))," |"]);}function printRow(rowContents){return concat$7(["| ",join$6(" | ",rowContents.map(function(rowContent,columnIndex){switch(node.align[columnIndex]){case"right":return alignRight(rowContent,columnMaxWidths[columnIndex]);case"center":return alignCenter(rowContent,columnMaxWidths[columnIndex]);default:return alignLeft(rowContent,columnMaxWidths[columnIndex]);}}))," |"]);}function alignLeft(text,width){return concat$7([text," ".repeat(width-util$10.getStringWidth(text))]);}function alignRight(text,width){return concat$7([" ".repeat(width-util$10.getStringWidth(text)),text]);}function alignCenter(text,width){var spaces=width-util$10.getStringWidth(text);var left=Math.floor(spaces/2);var right=spaces-left;return concat$7([" ".repeat(left),text," ".repeat(right)]);}}function printChildren$1(path,options,print,events){events=events||{};var postprocessor=events.postprocessor||concat$7;var processor=events.processor||function(childPath){return childPath.call(print);};var node=path.getValue();var parts=[];var counter=0;var lastChildNode=void 0;var prettierIgnore=false;path.map(function(childPath,index){var childNode=childPath.getValue();var result=prettierIgnore?options.originalText.slice(childNode.position.start.offset,childNode.position.end.offset):processor(childPath,index);prettierIgnore=false;if(result!==false){prettierIgnore=isPrettierIgnore(childNode);var data={parts:parts,index:counter++,prevNode:lastChildNode,parentNode:node,options:options};if(!shouldNotPrePrintHardline(childNode,data)){parts.push(hardline$7);if(shouldPrePrintDoubleHardline(childNode,data)||shouldPrePrintTripleHardline(childNode,data)){parts.push(hardline$7);}if(shouldPrePrintTripleHardline(childNode,data)){parts.push(hardline$7);}}parts.push(result);lastChildNode=childNode;}},"children");return postprocessor(parts);}function isPrettierIgnore(node){return node.type==="html"&&/^$/.test(node.value);}function shouldNotPrePrintHardline(node,data){var isFirstNode=data.parts.length===0;var isInlineNode=INLINE_NODE_TYPES.indexOf(node.type)!==-1;var isInlineHTML=node.type==="html"&&INLINE_NODE_WRAPPER_TYPES.indexOf(data.parentNode.type)!==-1;return isFirstNode||isInlineNode||isInlineHTML;}function shouldPrePrintDoubleHardline(node,data){var isSequence=(data.prevNode&&data.prevNode.type)===node.type;var isSiblingNode=isSequence&&SIBLING_NODE_TYPES.indexOf(node.type)!==-1;var isInTightListItem=data.parentNode.type==="listItem"&&!data.parentNode.loose;var isPrevNodeLooseListItem=data.prevNode&&data.prevNode.type==="listItem"&&data.prevNode.loose;var isPrevNodePrettierIgnore=isPrettierIgnore(data.prevNode);return isPrevNodeLooseListItem||!(isSiblingNode||isInTightListItem||isPrevNodePrettierIgnore);}function shouldPrePrintTripleHardline(node,data){var isPrevNodeList=data.prevNode&&data.prevNode.type==="list";var isIndentedCode=node.type==="code"&&/\s/.test(data.options.originalText[node.position.start.offset]);return isPrevNodeList&&isIndentedCode;}function shouldRemainTheSameContent(path){var ancestorNode=getAncestorNode(path,["linkReference","imageReference"]);return ancestorNode&&(ancestorNode.type!=="linkReference"||ancestorNode.referenceType!=="full");}function normalizeDoc(doc){return util$10.mapDoc(doc,function(currentDoc){if(!currentDoc.parts){return currentDoc;}if(currentDoc.type==="concat"&¤tDoc.parts.length===1){return currentDoc.parts[0];}var parts=[];currentDoc.parts.forEach(function(part){if(part.type==="concat"){parts.push.apply(parts,part.parts);}else if(part!==""){parts.push(part);}});return Object.assign({},currentDoc,{parts:normalizeParts(parts)});});}function printUrl(url,dangerousCharOrChars){var dangerousChars=[" "].concat(dangerousCharOrChars||[]);return new RegExp(dangerousChars.map(function(x){return'\\'+x;}).join("|")).test(url)?'<'+url+'>':url;}function printTitle(title){return title.includes('"')&&!title.includes("'")?'\''+title+'\'':'"'+title.replace(/"/g,'\\"')+'"';}function normalizeParts(parts){return parts.reduce(function(current,part){var lastPart=current[current.length-1];if(typeof lastPart==="string"&&typeof part==="string"){current.splice(-1,1,lastPart+part);}else{current.push(part);}return current;},[]);}var printerMarkdown=genericPrint$4;var assert$1=require$$0;var comments$3=comments$1;var FastPath=fastPath;var multiparser=multiparser$1;var util$5=util$3;var isIdentifierName=utils.keyword.isIdentifierNameES6;var docBuilders$3=docBuilders$1;var concat$2=docBuilders$3.concat;var join$2=docBuilders$3.join;var line$1=docBuilders$3.line;var hardline$2=docBuilders$3.hardline;var softline$1=docBuilders$3.softline;var literalline$1=docBuilders$3.literalline;var group$1=docBuilders$3.group;var indent$2=docBuilders$3.indent;var align$1=docBuilders$3.align;var conditionalGroup$1=docBuilders$3.conditionalGroup;var fill$1=docBuilders$3.fill;var ifBreak$1=docBuilders$3.ifBreak;var breakParent$2=docBuilders$3.breakParent;var lineSuffixBoundary$1=docBuilders$3.lineSuffixBoundary;var addAlignmentToDoc$1=docBuilders$3.addAlignmentToDoc;var docUtils=docUtils$2;var willBreak=docUtils.willBreak;var isLineNext=docUtils.isLineNext;var isEmpty=docUtils.isEmpty;var rawText=docUtils.rawText;function shouldPrintComma(options,level){level=level||"es5";switch(options.trailingComma){case"all":if(level==="all"){return true;}// fallthrough case"es5":if(level==="es5"){return true;}// fallthrough @@ -629,7 +629,7 @@ var jsxMode=false;var _parent10=path.getParentNode();var forceNoIndent=_parent10 // ConditionalExpression parent. We'll use these to determine if we should // print in JSX mode. var currentParent=void 0;var previousParent=void 0;var _i28=0;do{previousParent=currentParent||n;currentParent=path.getParentNode(_i28);_i28++;}while(currentParent&¤tParent.type==="ConditionalExpression");var firstNonConditionalParent=currentParent||_parent10;var lastConditionalParent=previousParent;if(n.test.type==="JSXElement"||n.consequent.type==="JSXElement"||n.alternate.type==="JSXElement"||conditionalExpressionChainContainsJSX(lastConditionalParent)){jsxMode=true;forceNoIndent=true;// Even though they don't need parens, we wrap (almost) everything in -// parens when using ?: within JSX, because the parens are analagous to +// parens when using ?: within JSX, because the parens are analogous to // curly braces in an if statement. var wrap=function wrap(doc){return concat$2([ifBreak$1("(",""),indent$2(concat$2([softline$1,doc])),softline$1,ifBreak$1(")","")]);};// The only things we don't wrap are: // * Nested conditional expressions in alternates @@ -1489,7 +1489,7 @@ if(high.operator===comp||high.operator===ecomp){return false;}// If the lowest v if((!low.operator||low.operator===comp)&<efn(version,low.semver)){return false;}else if(low.operator===ecomp&<fn(version,low.semver)){return false;}}return true;}exports.prerelease=prerelease;function prerelease(version,loose){var parsed=parse(version,loose);return parsed&&parsed.prerelease.length?parsed.prerelease:null;}exports.intersects=intersects;function intersects(r1,r2,loose){r1=new Range(r1,loose);r2=new Range(r2,loose);return r1.intersects(r2);}});var require$$1$15=_package$1&&_package||_package$1;var semver=semver$1;var currentVersion=require$$1$15.version;// Based on: // https://github.com/github/linguist/blob/master/lib/linguist/languages.yml var supportTable$1=[{name:"JavaScript",since:"0.0.0",parsers:["babylon","flow"],group:"JavaScript",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["js","node"],extensions:[".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"],linguistLanguageId:183,vscodeLanguageIds:["javascript"]},{name:"JSX",since:"0.0.0",parsers:["babylon","flow"],group:"JavaScript",extensions:[".jsx"],tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",liguistLanguageId:178,vscodeLanguageIds:["javascriptreact"]},{name:"TypeScript",since:"1.4.0",parsers:["typescript"],group:"JavaScript",aliases:["ts"],extensions:[".ts",".tsx"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",liguistLanguageId:378,vscodeLanguageIds:["typescript","typescriptreact"]},{name:"CSS",since:"1.4.0",parsers:["css"],group:"CSS",tmScope:"source.css",aceMode:"css",codemirrorMode:"css",codemirrorMimeType:"text/css",extensions:[".css"],liguistLanguageId:50,vscodeLanguageIds:["css"]},{name:"Less",since:"1.4.0",parsers:["less"],group:"CSS",extensions:[".less"],tmScope:"source.css.less",aceMode:"less",codemirrorMode:"css",codemirrorMimeType:"text/css",liguistLanguageId:198,vscodeLanguageIds:["less"]},{name:"SCSS",since:"1.4.0",parsers:["scss"],group:"CSS",tmScope:"source.scss",aceMode:"scss",codemirrorMode:"css",codemirrorMimeType:"text/x-scss",extensions:[".scss"],liguistLanguageId:329,vscodeLanguageIds:["scss"]},{name:"GraphQL",since:"1.5.0",parsers:["graphql"],extensions:[".graphql",".gql"],tmScope:"source.graphql",aceMode:"text",liguistLanguageId:139,vscodeLanguageIds:["graphql"]},{name:"JSON",since:"1.5.0",parsers:["json"],group:"JavaScript",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",extensions:[".json",".json5",".geojson",".JSON-tmLanguage",".topojson"],filenames:[".arcconfig",".jshintrc",".babelrc",".eslintrc",".prettierrc","composer.lock","mcmod.info"],linguistLanguageId:174,vscodeLanguageIds:["json"]},{name:"Markdown",since:"1.8.0",parsers:["markdown"],aliases:["pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:true,extensions:[".md",".markdown",".mdown",".mdwn",".mkd",".mkdn",".mkdown",".ron",".workbook"],filenames:["README"],tmScope:"source.gfm",linguistLanguageId:222,vscodeLanguageIds:["markdown"]},{name:"HTML",since:undefined,// unreleased -parsers:["parse5"],group:"HTML",tmScope:"text.html.basic",aceMode:"html",codemirrorMode:"htmlmixed",codemirrorMimeType:"text/html",aliases:["xhtml"],extensions:[".html",".htm",".html.hl",".inc",".st",".xht",".xhtml"],linguistLanguageId:146,vscodeLanguageIds:["html"]}];function getSupportInfo$1(version){if(!version){version=currentVersion;}var usePostCssParser=semver.lt(version,"1.7.1");var languages=supportTable$1.filter(function(language){return language.since&&semver.gte(version,language.since);}).map(function(language){if(usePostCssParser&&language.group==="CSS"){return Object.assign({},language,{parsers:["postcss"]});}return language;});return{languages:languages};}var support$1={supportTable:supportTable$1,getSupportInfo:getSupportInfo$1};var path$1=require$$0$1;var validate=index$36.validate;var deprecatedConfig=deprecated_1$1;var supportTable=support$1.supportTable;var defaults={cursorOffset:-1,rangeStart:0,rangeEnd:Infinity,useTabs:false,tabWidth:2,printWidth:80,singleQuote:false,trailingComma:"none",bracketSpacing:true,jsxBracketSameLine:false,parser:"babylon",insertPragma:false,requirePragma:false,semi:true};var exampleConfig=Object.assign({},defaults,{filepath:"path/to/Filename",printWidth:80,originalText:"text"});// Copy options and fill in default values. +parsers:["parse5"],group:"HTML",tmScope:"text.html.basic",aceMode:"html",codemirrorMode:"htmlmixed",codemirrorMimeType:"text/html",aliases:["xhtml"],extensions:[".html",".htm",".html.hl",".inc",".st",".xht",".xhtml"],linguistLanguageId:146,vscodeLanguageIds:["html"]}];function getSupportInfo$1(version){if(!version){version=currentVersion;}var usePostCssParser=semver.lt(version,"1.7.1");var languages=supportTable$1.filter(function(language){return language.since&&semver.gte(version,language.since);}).map(function(language){if(usePostCssParser&&language.group==="CSS"){return Object.assign({},language,{parsers:["postcss"]});}return language;});return{languages:languages};}var support$1={supportTable:supportTable$1,getSupportInfo:getSupportInfo$1};var path$1=require$$0$1;var validate=index$36.validate;var deprecatedConfig=deprecated_1$1;var supportTable=support$1.supportTable;var defaults={cursorOffset:-1,rangeStart:0,rangeEnd:Infinity,useTabs:false,tabWidth:2,printWidth:80,singleQuote:false,trailingComma:"none",bracketSpacing:true,jsxBracketSameLine:false,parser:"babylon",insertPragma:false,requirePragma:false,semi:true,proseWrap:true};var exampleConfig=Object.assign({},defaults,{filepath:"path/to/Filename",printWidth:80,originalText:"text"});// Copy options and fill in default values. function normalize(options){var normalized=Object.assign({},options||{});var filepath=normalized.filepath;if(filepath&&(!normalized.parser||normalized.parser===defaults.parser)){var extension=path$1.extname(filepath);var filename=path$1.basename(filepath).toLowerCase();var language=supportTable.find(function(language){return typeof language.since==="string"&&(language.extensions.indexOf(extension)>-1||language.filenames&&language.filenames.find(function(name){return name.toLowerCase()===filename;}));});if(language){normalized.parser=language.parsers[0];}}if(normalized.parser==="json"){normalized.trailingComma="none";}/* istanbul ignore if */if(typeof normalized.trailingComma==="boolean"){// Support a deprecated boolean type for the trailing comma config // for a few versions. This code can be removed later. normalized.trailingComma="es5";console.warn("Warning: `trailingComma` without any argument is deprecated. "+'Specify "none", "es5", or "all".');}/* istanbul ignore if */if(normalized.parser==="postcss"){normalized.parser="css";console.warn('Warning: `parser` with value "postcss" is deprecated. '+'Use "css", "less" or "scss" instead.');}var parserBackup=normalized.parser;if(typeof normalized.parser==="function"){// Delete the function from the object to pass validation.