@moritzwilksch/diffle 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/client/assets/{angular-html-NJfvXMBu.js → angular-html-ulrXXC4T.js} +1 -1
- package/dist/client/assets/{angular-ts-3VmQ16GC.js → angular-ts-cWUkbqrc.js} +1 -1
- package/dist/client/assets/{apl-CaYQRkUE.js → apl-CYwKvDlF.js} +1 -1
- package/dist/client/assets/{astro-CGsy8jQJ.js → astro-BleB-Dvw.js} +1 -1
- package/dist/client/assets/{blade-CbyPPxmo.js → blade-UxS1gLIJ.js} +1 -1
- package/dist/client/assets/{c-BaJwvHpK.js → c-Dy61fyeR.js} +1 -1
- package/dist/client/assets/{chapel-BokLUCVc.js → chapel-DA_5Jb29.js} +1 -1
- package/dist/client/assets/{cobol-I7_VFdfF.js → cobol-DF_09Fay.js} +1 -1
- package/dist/client/assets/{coffee-BJ7WLX7y.js → coffee-Cv1DVgPp.js} +1 -1
- package/dist/client/assets/{cpp-DSFvuOlH.js → cpp-BlnMjTh9.js} +1 -1
- package/dist/client/assets/{crystal-DLLJ7kug.js → crystal-B8onZGWh.js} +1 -1
- package/dist/client/assets/{css-CW7SLGV7.js → css-D-x-Ue0G.js} +1 -1
- package/dist/client/assets/{edge-DQEyTxuu.js → edge-Fqle09cH.js} +1 -1
- package/dist/client/assets/{elixir-Dwvydtjv.js → elixir-CL3sU1gy.js} +1 -1
- package/dist/client/assets/{elm-DPrZsI-D.js → elm-Blr9Ia2N.js} +1 -1
- package/dist/client/assets/{erb-By39__m0.js → erb-Ck5t-jn2.js} +1 -1
- package/dist/client/assets/{git-rebase-CBF3buEb.js → git-rebase-Dt2TndDV.js} +1 -1
- package/dist/client/assets/{glimmer-js-C4TvHlaw.js → glimmer-js-Cwn-aFNH.js} +1 -1
- package/dist/client/assets/{glimmer-ts-BPhq137Q.js → glimmer-ts-CKev0hwM.js} +1 -1
- package/dist/client/assets/{glsl-BlwDtIwk.js → glsl-ClWhfdlL.js} +1 -1
- package/dist/client/assets/{graphql-BgMqs-o1.js → graphql-C8TyhWXe.js} +1 -1
- package/dist/client/assets/{hack-DrMUHl8k.js → hack-C9oIcSTK.js} +1 -1
- package/dist/client/assets/{haml-BWbuOop2.js → haml-BP7tD858.js} +1 -1
- package/dist/client/assets/{handlebars-D-TP7YFr.js → handlebars-D7ZldTVB.js} +1 -1
- package/dist/client/assets/{html-RkKdupbJ.js → html-BxXjaAye.js} +1 -1
- package/dist/client/assets/{html-derivative-BiXkRfVa.js → html-derivative-CEoRM3ro.js} +1 -1
- package/dist/client/assets/{http-CF05Tv0R.js → http-DVWDINjr.js} +1 -1
- package/dist/client/assets/{hurl-p-K5zx-F.js → hurl-BjNoiLI6.js} +1 -1
- package/dist/client/assets/{index-Dw_tHgT2.js → index-DrpXuuVn.js} +95 -95
- package/dist/client/assets/{java-DZgPGAdX.js → java-Cbx3IDuw.js} +1 -1
- package/dist/client/assets/{javascript-UpC6uRwd.js → javascript-C1JF7iBX.js} +1 -1
- package/dist/client/assets/{jinja-BwlD6UdE.js → jinja-BMe2GcVb.js} +1 -1
- package/dist/client/assets/{jison-CXzrtNYv.js → jison-BVbXCft7.js} +1 -1
- package/dist/client/assets/{json-CvzeYtbd.js → json-CRqSOZnD.js} +1 -1
- package/dist/client/assets/{jsx-CRRNRy_v.js → jsx-DcDmlRfr.js} +1 -1
- package/dist/client/assets/{julia-n9zQTAkT.js → julia-CPcuPmIV.js} +1 -1
- package/dist/client/assets/{just-Cqgx3k16.js → just-B1zV9CiR.js} +1 -1
- package/dist/client/assets/{latex-CtWS0r44.js → latex-Cuj3EXmX.js} +1 -1
- package/dist/client/assets/{liquid-DYOfxp51.js → liquid-C1T4UF1w.js} +1 -1
- package/dist/client/assets/{lua-BH2jjxbT.js → lua-46-qG00m.js} +1 -1
- package/dist/client/assets/{marko-yGXqh8Mu.js → marko-Cc6TCGIc.js} +1 -1
- package/dist/client/assets/{mdc-DBTGzC9c.js → mdc-qnFt69dC.js} +1 -1
- package/dist/client/assets/{nginx-C6OOwetR.js → nginx-7n4L4W73.js} +1 -1
- package/dist/client/assets/{nim-B-51OZwP.js → nim-BLvMDnWX.js} +1 -1
- package/dist/client/assets/{org-rdh6JnaZ.js → org-C8fiTt0a.js} +1 -1
- package/dist/client/assets/{perl-BEpLn7O_.js → perl-x9VdolYn.js} +1 -1
- package/dist/client/assets/{php-uM1K2nIh.js → php-mFFqmEsM.js} +1 -1
- package/dist/client/assets/{pug-CX5jxSmg.js → pug-H1OMV43P.js} +1 -1
- package/dist/client/assets/{qml-BjaL9kT9.js → qml-B8D1BoQx.js} +1 -1
- package/dist/client/assets/{r-CbP_oADb.js → r-DAih_iaQ.js} +1 -1
- package/dist/client/assets/{razor-ClgwHmG8.js → razor-BeJgOpe8.js} +1 -1
- package/dist/client/assets/{regexp-DkGv1hXs.js → regexp-CAppT72h.js} +1 -1
- package/dist/client/assets/{rst-KbuceK-d.js → rst-RMbVAAkg.js} +1 -1
- package/dist/client/assets/{ruby-IyWK5TqJ.js → ruby-DLm1ZwEN.js} +1 -1
- package/dist/client/assets/{sas-CGY91YIG.js → sas-B7ihlrSP.js} +1 -1
- package/dist/client/assets/{scss-C5azgOdY.js → scss-3DF1Is0M.js} +1 -1
- package/dist/client/assets/{shellscript-Do9KSXv1.js → shellscript-Bq08mUIc.js} +1 -1
- package/dist/client/assets/{shellsession-DG2DOiiH.js → shellsession-DJY5846a.js} +1 -1
- package/dist/client/assets/{soy-BLO2pcf_.js → soy-Bkld_lfE.js} +1 -1
- package/dist/client/assets/{sql-NhQC2aCy.js → sql-B35yhKok.js} +1 -1
- package/dist/client/assets/{stata-BT8bwSiP.js → stata-BgW5egxh.js} +1 -1
- package/dist/client/assets/{surrealql-DeFUr0Sz.js → surrealql-B-aUVDek.js} +1 -1
- package/dist/client/assets/{svelte-TRjcWU3h.js → svelte-C7MrEpG_.js} +1 -1
- package/dist/client/assets/{templ-C1Ef7mnt.js → templ-CUYQL3Op.js} +1 -1
- package/dist/client/assets/{tex-DWZKUBNC.js → tex-Dbrd9bB3.js} +1 -1
- package/dist/client/assets/{ts-tags-BPGHRwAa.js → ts-tags-wpbSYL5U.js} +1 -1
- package/dist/client/assets/{tsx-DFPjrnBq.js → tsx-B8rF--RV.js} +1 -1
- package/dist/client/assets/{twig-BnaDylmD.js → twig-CpaRBIem.js} +1 -1
- package/dist/client/assets/{typescript-CtjU5LIe.js → typescript-cqbK9R71.js} +1 -1
- package/dist/client/assets/{typst-CKVv919t.js → typst-BUVX7J-L.js} +1 -1
- package/dist/client/assets/{vue-DQGhQ-pk.js → vue-B3rM_CiH.js} +1 -1
- package/dist/client/assets/{vue-html-BtU_VFsU.js → vue-html-uBxsJ3nV.js} +1 -1
- package/dist/client/assets/{vue-vine-Bg_4C7Q_.js → vue-vine-CH44uMD8.js} +1 -1
- package/dist/client/assets/{xml-DupdE_s3.js → xml-BnoqKVtb.js} +1 -1
- package/dist/client/assets/{xsl-BkEIn0qW.js → xsl-r6Si1Xjc.js} +1 -1
- package/dist/client/assets/{yaml-BuH0PmqQ.js → yaml-tinlnfn7.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/main.js +237 -74
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./index-
|
|
1
|
+
import{t as e}from"./index-DrpXuuVn.js";import{t}from"./java-Cbx3IDuw.js";var n=e({default:()=>i}),r=Object.freeze(JSON.parse(`{"displayName":"XML","name":"xml","patterns":[{"begin":"(<\\\\?)\\\\s*([-0-9A-Z_a-z]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"}},"end":"(\\\\?>)","name":"meta.tag.preprocessor.xml","patterns":[{"match":" ([-A-Za-z]+)","name":"entity.other.attribute-name.xml"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"begin":"(<!)(DOCTYPE)\\\\s+([:A-Z_a-z][-.0-:A-Z_a-z]*)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.doctype.xml"},"3":{"name":"variable.language.documentroot.xml"}},"end":"\\\\s*(>)","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"include":"#comments"},{"begin":"(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\\\s[^>]*)?></\\\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)(</)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"entity.name.tag.namespace.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}},"name":"meta.tag.no-content.xml","patterns":[{"include":"#tagStuff"}]},{"begin":"(</?)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(/?>)","name":"meta.tag.xml","patterns":[{"include":"#tagStuff"}]},{"include":"#entity"},{"include":"#bare-ampersand"},{"begin":"<%@","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java-props.embedded.xml","patterns":[{"match":"page|include|taglib","name":"keyword.other.page-props.xml"}]},{"begin":"<%[!=]?(?!--)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"(?!--)%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java.embedded.xml","patterns":[{"include":"source.java"}]},{"begin":"<!\\\\[CDATA\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"]]>","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"(<!)(ENTITY)\\\\s+(%\\\\s+)?([:A-Z_a-z][-.0-:A-Z_a-z]*)(\\\\s+(?:SYSTEM|PUBLIC)\\\\s+)?","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.entity.xml"},"3":{"name":"punctuation.definition.entity.xml"},"4":{"name":"variable.language.entity.xml"},"5":{"name":"keyword.other.entitytype.xml"}},"end":"(>)","patterns":[{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},"bare-ampersand":{"match":"&","name":"invalid.illegal.bad-ampersand.xml"},"comments":{"patterns":[{"begin":"<%--","captures":{"0":{"name":"punctuation.definition.comment.xml"},"end":"--%>","name":"comment.block.xml"}},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.xml"}},"end":"-->","name":"comment.block.xml","patterns":[{"begin":"--(?!>)","captures":{"0":{"name":"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]},"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"entity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(&)([:A-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\\\h+)(;)","name":"constant.character.entity.xml"},"internalSubset":{"begin":"(\\\\[)","captures":{"1":{"name":"punctuation.definition.constant.xml"}},"end":"(])","name":"meta.internalsubset.xml","patterns":[{"include":"#EntityDecl"},{"include":"#parameterEntity"},{"include":"#comments"}]},"parameterEntity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(%)([:A-Z_a-z][-.0-:A-Z_a-z]*)(;)","name":"constant.character.parameter-entity.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"tagStuff":{"patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":"(?:^|\\\\s+)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)\\\\s*="},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]}},"scopeName":"text.xml","embeddedLangs":["java"]}`)),i=[...t,r];export{n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./xml-
|
|
1
|
+
import{t as e}from"./xml-BnoqKVtb.js";var t=Object.freeze(JSON.parse(`{"displayName":"XSL","name":"xsl","patterns":[{"begin":"(<)(xsl)((:))(template)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)","name":"meta.tag.xml.template","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":" (?:([-0-9A-Z_a-z]+)((:)))?([-A-Za-z]+)"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"include":"text.xml"}],"repository":{"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml"}},"scopeName":"text.xml.xsl","embeddedLangs":["xml"]}`)),n=[...e,t];export{n as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./index-Dw_tHgT2.js";var t=e({default:()=>n}),n=[Object.freeze(JSON.parse(`{"displayName":"YAML","fileTypes":["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],"firstLineMatch":"^%YAML( ?1.\\\\d+)?","name":"yaml","patterns":[{"include":"#comment"},{"include":"#property"},{"include":"#directive"},{"match":"^---","name":"entity.other.document.begin.yaml"},{"match":"^\\\\.{3}","name":"entity.other.document.end.yaml"},{"include":"#node"}],"repository":{"block-collection":{"patterns":[{"include":"#block-sequence"},{"include":"#block-mapping"}]},"block-mapping":{"patterns":[{"include":"#block-pair"}]},"block-node":{"patterns":[{"include":"#prototype"},{"include":"#block-scalar"},{"include":"#block-collection"},{"include":"#flow-scalar-plain-out"},{"include":"#flow-node"}]},"block-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"1":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=\\\\?)|^ *(:)|(:)","endCaptures":{"1":{"name":"punctuation.separator.key-value.mapping.yaml"},"2":{"name":"invalid.illegal.expected-newline.yaml"}},"name":"meta.block-mapping.yaml","patterns":[{"include":"#block-node"}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S)([^:\\\\s]|:\\\\S|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},{"match":":(?=\\\\s|$)","name":"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{"begin":"(?:(\\\\|)|(>))([1-9])?([-+])?(.*\\\\n?)","beginCaptures":{"1":{"name":"keyword.control.flow.block-scalar.literal.yaml"},"2":{"name":"keyword.control.flow.block-scalar.folded.yaml"},"3":{"name":"constant.numeric.indentation-indicator.yaml"},"4":{"name":"storage.modifier.chomping-indicator.yaml"},"5":{"patterns":[{"include":"#comment"},{"match":".+","name":"invalid.illegal.expected-comment-or-newline.yaml"}]}},"end":"^(?=\\\\S)|(?!\\\\G)","patterns":[{"begin":"^( +)(?! )","end":"^(?!\\\\1|\\\\s*$)","name":"string.unquoted.block.yaml"}]},"block-sequence":{"match":"(-)(?!\\\\S)","name":"punctuation.definition.block.sequence.item.yaml"},"comment":{"begin":"(?:^([\\\\t ]*)|[\\\\t ]+)(?=#\\\\p{print}*$)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\\\n","name":"comment.line.number-sign.yaml"}]},"directive":{"begin":"^%","beginCaptures":{"0":{"name":"punctuation.definition.directive.begin.yaml"}},"end":"(?=$|[\\\\t ]+($|#))","name":"meta.directive.yaml","patterns":[{"captures":{"1":{"name":"keyword.other.directive.yaml.yaml"},"2":{"name":"constant.numeric.yaml-version.yaml"}},"match":"\\\\G(YAML)[\\\\t ]+(\\\\d+\\\\.\\\\d+)"},{"captures":{"1":{"name":"keyword.other.directive.tag.yaml"},"2":{"name":"storage.type.tag-handle.yaml"},"3":{"name":"support.type.tag-prefix.yaml"}},"match":"\\\\G(TAG)(?:[\\\\t ]+(!(?:[-0-9A-Za-z]*!)?)(?:[\\\\t ]+(!(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])*|(?![]!,\\\\[{}])(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+))?)?"},{"captures":{"1":{"name":"support.other.directive.reserved.yaml"},"2":{"name":"string.unquoted.directive-name.yaml"},"3":{"name":"string.unquoted.directive-parameter.yaml"}},"match":"\\\\G(\\\\w+)(?:[\\\\t ]+(\\\\w+)(?:[\\\\t ]+(\\\\w+))?)?"},{"match":"\\\\S+","name":"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{"captures":{"1":{"name":"keyword.control.flow.alias.yaml"},"2":{"name":"punctuation.definition.alias.yaml"},"3":{"name":"variable.other.alias.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"((\\\\*))([^],/\\\\[{}\\\\s]+)([^],}\\\\s]\\\\S*)?"},"flow-collection":{"patterns":[{"include":"#flow-sequence"},{"include":"#flow-mapping"}]},"flow-mapping":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.mapping.begin.yaml"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.mapping.end.yaml"}},"name":"meta.flow-mapping.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.mapping.yaml"},{"include":"#flow-pair"}]},"flow-node":{"patterns":[{"include":"#prototype"},{"include":"#flow-alias"},{"include":"#flow-collection"},{"include":"#flow-scalar"}]},"flow-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"0":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.explicit.yaml","patterns":[{"include":"#prototype"},{"include":"#flow-pair"},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","beginCaptures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","patterns":[{"include":"#flow-value"}]}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s])([^],:\\\\[{}\\\\s]|:[^],\\\\[{}\\\\s]|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"meta.flow-pair.key.yaml","patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","captures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.yaml","patterns":[{"include":"#flow-value"}]}]},"flow-scalar":{"patterns":[{"include":"#flow-scalar-double-quoted"},{"include":"#flow-scalar-single-quoted"},{"include":"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"match":"\\\\\\\\([ \\"/0LN\\\\\\\\_abefnprtv]|x\\\\d\\\\d|u\\\\d{4}|U\\\\d{8})","name":"constant.character.escape.yaml"},{"match":"\\\\\\\\\\\\n","name":"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{"patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])"}]},"flow-scalar-plain-out":{"patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))"}]},"flow-scalar-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"match":"''","name":"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.sequence.begin.yaml"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.sequence.end.yaml"}},"name":"meta.flow-sequence.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.sequence.yaml"},{"include":"#flow-pair"},{"include":"#flow-node"}]},"flow-value":{"patterns":[{"begin":"\\\\G(?![],}])","end":"(?=[],}])","name":"meta.flow-pair.value.yaml","patterns":[{"include":"#flow-node"}]}]},"node":{"patterns":[{"include":"#block-node"}]},"property":{"begin":"(?=[!\\\\&])","end":"(?!\\\\G)","name":"meta.property.yaml","patterns":[{"captures":{"1":{"name":"keyword.control.property.anchor.yaml"},"2":{"name":"punctuation.definition.anchor.yaml"},"3":{"name":"entity.name.type.anchor.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"\\\\G((&))([^],/\\\\[{}\\\\s]+)(\\\\S+)?"},{"match":"\\\\G!(?:<(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+>|(?:[-0-9A-Za-z]*!)?(?:%\\\\h{2}|[#$\\\\&-+\\\\--;=?-Z_a-z~])+|)(?=[\\\\t ]|$)","name":"storage.type.tag-handle.yaml"},{"match":"\\\\S+","name":"invalid.illegal.tag-handle.yaml"}]},"prototype":{"patterns":[{"include":"#comment"},{"include":"#property"}]}},"scopeName":"source.yaml","aliases":["yml"]}`))];export{t as n,n as t};
|
|
1
|
+
import{t as e}from"./index-DrpXuuVn.js";var t=e({default:()=>n}),n=[Object.freeze(JSON.parse(`{"displayName":"YAML","fileTypes":["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],"firstLineMatch":"^%YAML( ?1.\\\\d+)?","name":"yaml","patterns":[{"include":"#comment"},{"include":"#property"},{"include":"#directive"},{"match":"^---","name":"entity.other.document.begin.yaml"},{"match":"^\\\\.{3}","name":"entity.other.document.end.yaml"},{"include":"#node"}],"repository":{"block-collection":{"patterns":[{"include":"#block-sequence"},{"include":"#block-mapping"}]},"block-mapping":{"patterns":[{"include":"#block-pair"}]},"block-node":{"patterns":[{"include":"#prototype"},{"include":"#block-scalar"},{"include":"#block-collection"},{"include":"#flow-scalar-plain-out"},{"include":"#flow-node"}]},"block-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"1":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=\\\\?)|^ *(:)|(:)","endCaptures":{"1":{"name":"punctuation.separator.key-value.mapping.yaml"},"2":{"name":"invalid.illegal.expected-newline.yaml"}},"name":"meta.block-mapping.yaml","patterns":[{"include":"#block-node"}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S)([^:\\\\s]|:\\\\S|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},{"match":":(?=\\\\s|$)","name":"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{"begin":"(?:(\\\\|)|(>))([1-9])?([-+])?(.*\\\\n?)","beginCaptures":{"1":{"name":"keyword.control.flow.block-scalar.literal.yaml"},"2":{"name":"keyword.control.flow.block-scalar.folded.yaml"},"3":{"name":"constant.numeric.indentation-indicator.yaml"},"4":{"name":"storage.modifier.chomping-indicator.yaml"},"5":{"patterns":[{"include":"#comment"},{"match":".+","name":"invalid.illegal.expected-comment-or-newline.yaml"}]}},"end":"^(?=\\\\S)|(?!\\\\G)","patterns":[{"begin":"^( +)(?! )","end":"^(?!\\\\1|\\\\s*$)","name":"string.unquoted.block.yaml"}]},"block-sequence":{"match":"(-)(?!\\\\S)","name":"punctuation.definition.block.sequence.item.yaml"},"comment":{"begin":"(?:^([\\\\t ]*)|[\\\\t ]+)(?=#\\\\p{print}*$)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\\\n","name":"comment.line.number-sign.yaml"}]},"directive":{"begin":"^%","beginCaptures":{"0":{"name":"punctuation.definition.directive.begin.yaml"}},"end":"(?=$|[\\\\t ]+($|#))","name":"meta.directive.yaml","patterns":[{"captures":{"1":{"name":"keyword.other.directive.yaml.yaml"},"2":{"name":"constant.numeric.yaml-version.yaml"}},"match":"\\\\G(YAML)[\\\\t ]+(\\\\d+\\\\.\\\\d+)"},{"captures":{"1":{"name":"keyword.other.directive.tag.yaml"},"2":{"name":"storage.type.tag-handle.yaml"},"3":{"name":"support.type.tag-prefix.yaml"}},"match":"\\\\G(TAG)(?:[\\\\t ]+(!(?:[-0-9A-Za-z]*!)?)(?:[\\\\t ]+(!(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])*|(?![]!,\\\\[{}])(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+))?)?"},{"captures":{"1":{"name":"support.other.directive.reserved.yaml"},"2":{"name":"string.unquoted.directive-name.yaml"},"3":{"name":"string.unquoted.directive-parameter.yaml"}},"match":"\\\\G(\\\\w+)(?:[\\\\t ]+(\\\\w+)(?:[\\\\t ]+(\\\\w+))?)?"},{"match":"\\\\S+","name":"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{"captures":{"1":{"name":"keyword.control.flow.alias.yaml"},"2":{"name":"punctuation.definition.alias.yaml"},"3":{"name":"variable.other.alias.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"((\\\\*))([^],/\\\\[{}\\\\s]+)([^],}\\\\s]\\\\S*)?"},"flow-collection":{"patterns":[{"include":"#flow-sequence"},{"include":"#flow-mapping"}]},"flow-mapping":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.mapping.begin.yaml"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.mapping.end.yaml"}},"name":"meta.flow-mapping.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.mapping.yaml"},{"include":"#flow-pair"}]},"flow-node":{"patterns":[{"include":"#prototype"},{"include":"#flow-alias"},{"include":"#flow-collection"},{"include":"#flow-scalar"}]},"flow-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"0":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.explicit.yaml","patterns":[{"include":"#prototype"},{"include":"#flow-pair"},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","beginCaptures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","patterns":[{"include":"#flow-value"}]}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s])([^],:\\\\[{}\\\\s]|:[^],\\\\[{}\\\\s]|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"meta.flow-pair.key.yaml","patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","captures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.yaml","patterns":[{"include":"#flow-value"}]}]},"flow-scalar":{"patterns":[{"include":"#flow-scalar-double-quoted"},{"include":"#flow-scalar-single-quoted"},{"include":"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"match":"\\\\\\\\([ \\"/0LN\\\\\\\\_abefnprtv]|x\\\\d\\\\d|u\\\\d{4}|U\\\\d{8})","name":"constant.character.escape.yaml"},{"match":"\\\\\\\\\\\\n","name":"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{"patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])"}]},"flow-scalar-plain-out":{"patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))"}]},"flow-scalar-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"match":"''","name":"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.sequence.begin.yaml"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.sequence.end.yaml"}},"name":"meta.flow-sequence.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.sequence.yaml"},{"include":"#flow-pair"},{"include":"#flow-node"}]},"flow-value":{"patterns":[{"begin":"\\\\G(?![],}])","end":"(?=[],}])","name":"meta.flow-pair.value.yaml","patterns":[{"include":"#flow-node"}]}]},"node":{"patterns":[{"include":"#block-node"}]},"property":{"begin":"(?=[!\\\\&])","end":"(?!\\\\G)","name":"meta.property.yaml","patterns":[{"captures":{"1":{"name":"keyword.control.property.anchor.yaml"},"2":{"name":"punctuation.definition.anchor.yaml"},"3":{"name":"entity.name.type.anchor.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"\\\\G((&))([^],/\\\\[{}\\\\s]+)(\\\\S+)?"},{"match":"\\\\G!(?:<(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+>|(?:[-0-9A-Za-z]*!)?(?:%\\\\h{2}|[#$\\\\&-+\\\\--;=?-Z_a-z~])+|)(?=[\\\\t ]|$)","name":"storage.type.tag-handle.yaml"},{"match":"\\\\S+","name":"invalid.illegal.tag-handle.yaml"}]},"prototype":{"patterns":[{"include":"#comment"},{"include":"#property"}]}},"scopeName":"source.yaml","aliases":["yml"]}`))];export{t as n,n as t};
|
package/dist/client/index.html
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
</script>
|
|
15
15
|
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
|
|
16
16
|
<title>diffle</title>
|
|
17
|
-
<script type="module" crossorigin src="./assets/index-
|
|
17
|
+
<script type="module" crossorigin src="./assets/index-DrpXuuVn.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="./assets/index-C-uvIS11.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
package/dist/server/main.js
CHANGED
|
@@ -3952,7 +3952,7 @@ function generateCompletion(program, { shell, executable = program.name() }) {
|
|
|
3952
3952
|
}
|
|
3953
3953
|
//#endregion
|
|
3954
3954
|
//#region package.json
|
|
3955
|
-
var version$1 = "0.2.
|
|
3955
|
+
var version$1 = "0.2.1";
|
|
3956
3956
|
//#endregion
|
|
3957
3957
|
//#region src/server/comments/anchor.ts
|
|
3958
3958
|
function splitLines(contents) {
|
|
@@ -12284,6 +12284,10 @@ const ModeRequestSchema = discriminatedUnion("kind", [
|
|
|
12284
12284
|
from: number().int().positive(),
|
|
12285
12285
|
to: number().int().positive()
|
|
12286
12286
|
}),
|
|
12287
|
+
object({
|
|
12288
|
+
kind: literal("range-diff"),
|
|
12289
|
+
args: string().array()
|
|
12290
|
+
}),
|
|
12287
12291
|
object({
|
|
12288
12292
|
kind: literal("pair"),
|
|
12289
12293
|
commit: string().nullable()
|
|
@@ -12361,13 +12365,25 @@ const RangePairSchema = object({
|
|
|
12361
12365
|
status: PairStatusSchema
|
|
12362
12366
|
});
|
|
12363
12367
|
/**
|
|
12364
|
-
*
|
|
12365
|
-
*
|
|
12366
|
-
* the
|
|
12368
|
+
* One range of a range-diff, `old..new`: the revisions that named it, so moved refs can be
|
|
12369
|
+
* resolved again, and the commits they resolved to. A recorded iteration of the enclosing
|
|
12370
|
+
* range carries its number; a range the reviewer named carries null.
|
|
12371
|
+
*/
|
|
12372
|
+
const RangeSideSchema = object({
|
|
12373
|
+
old: string(),
|
|
12374
|
+
new: string(),
|
|
12375
|
+
oldSha: string(),
|
|
12376
|
+
newSha: string(),
|
|
12377
|
+
iteration: number().nullable()
|
|
12378
|
+
});
|
|
12379
|
+
/**
|
|
12380
|
+
* Two ranges compared: two iterations of one range, or any two the reviewer named. The old
|
|
12381
|
+
* side is `from`'s head replayed onto `to`'s base (a tree, not a commit), so a rebase in
|
|
12382
|
+
* between does not show up as the upstream's changes; the new side is `to`'s head.
|
|
12367
12383
|
*/
|
|
12368
12384
|
const InterdiffSchema = object({
|
|
12369
|
-
from:
|
|
12370
|
-
to:
|
|
12385
|
+
from: RangeSideSchema,
|
|
12386
|
+
to: RangeSideSchema,
|
|
12371
12387
|
/** Paths the replay could not merge; they carry conflict markers on the old side. */
|
|
12372
12388
|
conflicts: string().array(),
|
|
12373
12389
|
/** The two ranges' commits paired, in `git range-diff` order: the newer range's, dropped commits where they were. */
|
|
@@ -12383,7 +12399,10 @@ const PairSpecSchema = object({
|
|
|
12383
12399
|
conflicts: string().array()
|
|
12384
12400
|
});
|
|
12385
12401
|
const ModeSpecSchema = ComparisonSchema.extend({
|
|
12386
|
-
/**
|
|
12402
|
+
/**
|
|
12403
|
+
* Set while one commit of a range is focused or two ranges are compared: the range, whose commits the
|
|
12404
|
+
* snapshot keeps listing. For a range-diff it is the newer range, where the reviewer continues.
|
|
12405
|
+
*/
|
|
12387
12406
|
within: ComparisonSchema.optional(),
|
|
12388
12407
|
interdiff: InterdiffSchema.optional(),
|
|
12389
12408
|
/** Set with `interdiff` while one of its pairs is shown. */
|
|
@@ -12391,18 +12410,33 @@ const ModeSpecSchema = ComparisonSchema.extend({
|
|
|
12391
12410
|
});
|
|
12392
12411
|
/**
|
|
12393
12412
|
* Display comparison endpoints with branch names instead of internal ref namespaces; a single commit as
|
|
12394
|
-
* `<sha>^!`, as `<range> @ <sha>` when focused within a range, as `<range> #1→#2` for
|
|
12395
|
-
* `<
|
|
12413
|
+
* `<sha>^!`, as `<range> @ <sha>` when focused within a range, as `<range> #1→#2` for two of its
|
|
12414
|
+
* iterations, as `<a>..<b> → <c>..<d>` for two named ranges, and with ` @ <sha>` for one pair of either.
|
|
12396
12415
|
*/
|
|
12397
12416
|
function comparisonLabel(mode) {
|
|
12398
12417
|
if (mode.within && mode.interdiff) {
|
|
12399
|
-
const
|
|
12418
|
+
const { from, to } = mode.interdiff;
|
|
12419
|
+
const iterations = shownIterations(mode);
|
|
12420
|
+
const label = iterations ? `${comparisonLabel(mode.within)} #${iterations.from}→#${iterations.to}` : `${rangeLabel(from)} → ${rangeLabel(to)}`;
|
|
12400
12421
|
return mode.pair ? `${label} @ ${mode.pair.new.slice(0, 7)}` : label;
|
|
12401
12422
|
}
|
|
12402
12423
|
if (mode.within) return `${comparisonLabel(mode.within)} @ ${mode.new.slice(0, 7)}`;
|
|
12403
12424
|
if (mode.base === "parent") return `${mode.new.slice(0, 7)}^!`;
|
|
12404
12425
|
return `${refName(mode.old)}${mode.base === "merge-base" ? "..." : ".."}${refName(mode.new)}`;
|
|
12405
12426
|
}
|
|
12427
|
+
/** One side of a range-diff as the reviewer named it, `<old>..<new>`, with full hashes abbreviated. */
|
|
12428
|
+
function rangeLabel(side) {
|
|
12429
|
+
const short = (rev) => /^[0-9a-f]{40}$/.test(rev) ? rev.slice(0, 7) : refName(rev);
|
|
12430
|
+
return `${short(side.old)}..${short(side.new)}`;
|
|
12431
|
+
}
|
|
12432
|
+
/** The iteration numbers an interdiff compares, or null when it compares ranges the reviewer named. */
|
|
12433
|
+
function shownIterations(mode) {
|
|
12434
|
+
const inter = mode.interdiff;
|
|
12435
|
+
return inter && inter.from.iteration != null && inter.to.iteration != null ? {
|
|
12436
|
+
from: inter.from.iteration,
|
|
12437
|
+
to: inter.to.iteration
|
|
12438
|
+
} : null;
|
|
12439
|
+
}
|
|
12406
12440
|
/** A comparison endpoint as the user named it: without diffle's PR namespace or `refs/heads/`. */
|
|
12407
12441
|
function refName(rev) {
|
|
12408
12442
|
return rev.replace(/^refs\/diffle\/[^/]+\/\d+\/(?:base|head)\//, "").replace(/^refs\/(?:heads|remotes)\//, "");
|
|
@@ -14533,6 +14567,53 @@ function parseRevspec(args) {
|
|
|
14533
14567
|
base: "merge-base"
|
|
14534
14568
|
};
|
|
14535
14569
|
}
|
|
14570
|
+
/**
|
|
14571
|
+
* `git range-diff` style arguments, as two `old..new` ranges:
|
|
14572
|
+
* "a..b" "c..d" → a..b against c..d
|
|
14573
|
+
* "base" "b" "d" → base..b against base..d
|
|
14574
|
+
* "b...d" → d..b against b..d: each tip's commits since their divergence
|
|
14575
|
+
* A range also takes `<rev>^!`, the one commit. Empty sides default to HEAD; the worktree is
|
|
14576
|
+
* not a commit and has no place in a range.
|
|
14577
|
+
*/
|
|
14578
|
+
function parseRangeDiff(args) {
|
|
14579
|
+
if (args.length === 3) {
|
|
14580
|
+
const [base, b, d] = args;
|
|
14581
|
+
for (const arg of args) if (arg.includes("..") || arg.endsWith("^!")) throw new RevspecError("expected <base> <rev1> <rev2> as three plain revisions");
|
|
14582
|
+
return [range(base, b), range(base, d)];
|
|
14583
|
+
}
|
|
14584
|
+
if (args.length === 2) {
|
|
14585
|
+
const [a, b] = args;
|
|
14586
|
+
return [parseRange(a), parseRange(b)];
|
|
14587
|
+
}
|
|
14588
|
+
if (args.length === 1) {
|
|
14589
|
+
const arg = args[0];
|
|
14590
|
+
const three = arg.indexOf("...");
|
|
14591
|
+
if (three === -1 || arg.endsWith("^!")) throw new RevspecError("expected <range1> <range2>, <rev1>...<rev2> or <base> <rev1> <rev2>");
|
|
14592
|
+
const b = arg.slice(0, three) || "HEAD";
|
|
14593
|
+
const d = arg.slice(three + 3) || "HEAD";
|
|
14594
|
+
if (b.includes("..") || d.includes("..")) throw new RevspecError("cannot combine \"...\" with \"..\"");
|
|
14595
|
+
return [range(d, b), range(b, d)];
|
|
14596
|
+
}
|
|
14597
|
+
throw new RevspecError("expected <range1> <range2>, <rev1>...<rev2> or <base> <rev1> <rev2>");
|
|
14598
|
+
}
|
|
14599
|
+
function parseRange(arg) {
|
|
14600
|
+
if (arg.endsWith("^!")) {
|
|
14601
|
+
const commit = arg.slice(0, -2) || "HEAD";
|
|
14602
|
+
if (commit.includes("..")) throw new RevspecError("cannot combine \"^!\" with \"..\"");
|
|
14603
|
+
return range(`${commit}^`, commit);
|
|
14604
|
+
}
|
|
14605
|
+
if (arg.includes("...")) throw new RevspecError(`a range of a range-diff is <old>..<new>, not ${arg}`);
|
|
14606
|
+
const two = arg.indexOf("..");
|
|
14607
|
+
if (two === -1) throw new RevspecError(`not a range: ${arg} (expected <old>..<new>)`);
|
|
14608
|
+
return range(arg.slice(0, two) || "HEAD", arg.slice(two + 2) || "HEAD");
|
|
14609
|
+
}
|
|
14610
|
+
function range(old, next) {
|
|
14611
|
+
for (const rev of [old, next]) if (rev === WORKTREE || rev === `${WORKTREE}^`) throw new RevspecError("the worktree is not a commit");
|
|
14612
|
+
return {
|
|
14613
|
+
old,
|
|
14614
|
+
new: next
|
|
14615
|
+
};
|
|
14616
|
+
}
|
|
14536
14617
|
var RevspecError = class extends Error {};
|
|
14537
14618
|
//#endregion
|
|
14538
14619
|
//#region node_modules/@hono/node-server/dist/index.mjs
|
|
@@ -18867,6 +18948,67 @@ async function read(file) {
|
|
|
18867
18948
|
}
|
|
18868
18949
|
}
|
|
18869
18950
|
//#endregion
|
|
18951
|
+
//#region src/server/rangediff.ts
|
|
18952
|
+
/**
|
|
18953
|
+
* The mode that compares `older` with `newer`: `older`'s head replayed onto `newer`'s base against
|
|
18954
|
+
* `newer`'s head, so only what the series itself changed in between shows, with the two ranges'
|
|
18955
|
+
* commits paired. `range` is where the reviewer continues afterwards; its refs keep being watched,
|
|
18956
|
+
* so the comparison is pinned under them. Comments are off in it: the old side is a tree no
|
|
18957
|
+
* revision names.
|
|
18958
|
+
*/
|
|
18959
|
+
async function compareRanges(repo, range, older, newer) {
|
|
18960
|
+
const commentKey = older.iteration != null && newer.iteration != null ? `${range.commentKey}:interdiff:${older.iteration}-${newer.iteration}` : `range-diff:${older.oldSha}..${older.newSha}:${newer.oldSha}..${newer.newSha}`;
|
|
18961
|
+
const [{ tree, conflicts }, pairs] = await Promise.all([older.oldSha === newer.oldSha ? repo.tree(older.newSha).then((tree) => ({
|
|
18962
|
+
tree,
|
|
18963
|
+
conflicts: []
|
|
18964
|
+
})) : repo.replay(older.oldSha, newer.oldSha, older.newSha), pairRanges(repo, older, newer)]);
|
|
18965
|
+
return {
|
|
18966
|
+
old: tree,
|
|
18967
|
+
new: newer.newSha,
|
|
18968
|
+
base: "direct",
|
|
18969
|
+
live: range.live === "none" ? "none" : "refs",
|
|
18970
|
+
commentKey,
|
|
18971
|
+
within: range,
|
|
18972
|
+
interdiff: {
|
|
18973
|
+
from: older,
|
|
18974
|
+
to: newer,
|
|
18975
|
+
conflicts,
|
|
18976
|
+
pairs
|
|
18977
|
+
}
|
|
18978
|
+
};
|
|
18979
|
+
}
|
|
18980
|
+
/**
|
|
18981
|
+
* Pairs the two ranges' commits as `git range-diff` does and tells a pair whose patch is the
|
|
18982
|
+
* same (a reworded commit) from an amended one by patch id. range-diff compares every commit
|
|
18983
|
+
* with every other, so a range past MAX_RANGE_COMMITS is refused rather than left running.
|
|
18984
|
+
*/
|
|
18985
|
+
async function pairRanges(repo, older, newer) {
|
|
18986
|
+
const oldRange = `${older.oldSha}..${older.newSha}`;
|
|
18987
|
+
const newRange = `${newer.oldSha}..${newer.newSha}`;
|
|
18988
|
+
const [oldCommits, newCommits] = await Promise.all([repo.rangeCommits(oldRange, 250), repo.rangeCommits(newRange, 250)]);
|
|
18989
|
+
for (const [side, commits] of [[older, oldCommits], [newer, newCommits]]) if (commits.total > 250) throw new RevspecError(`${comparisonLabel({
|
|
18990
|
+
...side,
|
|
18991
|
+
base: "direct"
|
|
18992
|
+
})} spans ${commits.total} commits; a range-diff takes at most 250`);
|
|
18993
|
+
const rows = await repo.rangeDiff(oldRange, newRange);
|
|
18994
|
+
const find = async (list, abbrev) => {
|
|
18995
|
+
if (abbrev === null) return null;
|
|
18996
|
+
return list.find((c) => c.sha.startsWith(abbrev)) ?? (await repo.rangeCommits(`${abbrev}^!`, 1)).list[0] ?? null;
|
|
18997
|
+
};
|
|
18998
|
+
const paired = await Promise.all(rows.map(async (row) => ({
|
|
18999
|
+
old: await find(oldCommits.list, row.old),
|
|
19000
|
+
new: await find(newCommits.list, row.new),
|
|
19001
|
+
marker: row.marker
|
|
19002
|
+
})));
|
|
19003
|
+
const changed = paired.filter((p) => p.marker === "!" && p.old && p.new);
|
|
19004
|
+
const ids = await repo.patchIds(changed.flatMap((p) => [p.old.sha, p.new.sha]));
|
|
19005
|
+
return paired.map(({ old, new: next, marker }) => ({
|
|
19006
|
+
old,
|
|
19007
|
+
new: next,
|
|
19008
|
+
status: marker === "=" ? "identical" : marker === "<" ? "dropped" : marker === ">" ? "added" : old && next && ids.get(old.sha) !== void 0 && ids.get(old.sha) === ids.get(next.sha) ? "message" : "changed"
|
|
19009
|
+
}));
|
|
19010
|
+
}
|
|
19011
|
+
//#endregion
|
|
18870
19012
|
//#region src/server/mode.ts
|
|
18871
19013
|
/**
|
|
18872
19014
|
* Resolves a comparison to Git endpoints for initial mode setup, PR setup after
|
|
@@ -18944,6 +19086,7 @@ async function namesBranch(repo, comparison) {
|
|
|
18944
19086
|
/** Resolves an input command into a comparison and optional explicit PR identity. */
|
|
18945
19087
|
async function resolveReview(req, repo, github) {
|
|
18946
19088
|
if (req.kind === "pr") return resolvePr(req, repo, github);
|
|
19089
|
+
if (req.kind === "range-diff") return rangeDiffReview(repo, parseRangeDiff(req.args));
|
|
18947
19090
|
const parsed = req.kind === "working" ? {
|
|
18948
19091
|
old: "HEAD",
|
|
18949
19092
|
new: "worktree",
|
|
@@ -18959,12 +19102,48 @@ async function resolveReview(req, repo, github) {
|
|
|
18959
19102
|
commentKey: `commit:${sha}`
|
|
18960
19103
|
} };
|
|
18961
19104
|
}
|
|
19105
|
+
return { mode: await resolveRange(repo, parsed, req.kind === "working" ? "working" : void 0) };
|
|
19106
|
+
}
|
|
19107
|
+
/** A range as a comparison: resolved for its liveness and keyed for its comments, unless `key` names them. */
|
|
19108
|
+
async function resolveRange(repo, parsed, key) {
|
|
18962
19109
|
const { oldSha, newSha, live } = await resolveComparison(repo, parsed);
|
|
18963
|
-
return {
|
|
19110
|
+
return {
|
|
18964
19111
|
...parsed,
|
|
18965
19112
|
live,
|
|
18966
|
-
commentKey:
|
|
18967
|
-
}
|
|
19113
|
+
commentKey: key ?? await commentKey(repo, parsed, oldSha, newSha)
|
|
19114
|
+
};
|
|
19115
|
+
}
|
|
19116
|
+
/**
|
|
19117
|
+
* Two ranges the reviewer named, compared. Both resolve now and the comparison is pinned; the
|
|
19118
|
+
* newer range is where "All changes" leads and whose refs are watched. Resolving again, as a
|
|
19119
|
+
* reload does, follows the revisions either range was named by.
|
|
19120
|
+
*/
|
|
19121
|
+
async function rangeDiffReview(repo, [older, newer], prUrl) {
|
|
19122
|
+
const resolveSide = async (parsed) => {
|
|
19123
|
+
const { oldSha, newSha } = await resolveComparison(repo, {
|
|
19124
|
+
...parsed,
|
|
19125
|
+
base: "direct"
|
|
19126
|
+
});
|
|
19127
|
+
return {
|
|
19128
|
+
old: parsed.old,
|
|
19129
|
+
new: parsed.new,
|
|
19130
|
+
oldSha,
|
|
19131
|
+
newSha,
|
|
19132
|
+
iteration: null
|
|
19133
|
+
};
|
|
19134
|
+
};
|
|
19135
|
+
const [range, from, to] = await Promise.all([
|
|
19136
|
+
resolveRange(repo, {
|
|
19137
|
+
...newer,
|
|
19138
|
+
base: "direct"
|
|
19139
|
+
}),
|
|
19140
|
+
resolveSide(older),
|
|
19141
|
+
resolveSide(newer)
|
|
19142
|
+
]);
|
|
19143
|
+
return {
|
|
19144
|
+
prUrl,
|
|
19145
|
+
mode: await compareRanges(repo, range, from, to)
|
|
19146
|
+
};
|
|
18968
19147
|
}
|
|
18969
19148
|
/**
|
|
18970
19149
|
* Branch identities keep review state stable across pushes and local branch aliases.
|
|
@@ -19472,9 +19651,9 @@ var Session = class {
|
|
|
19472
19651
|
};
|
|
19473
19652
|
}
|
|
19474
19653
|
/**
|
|
19475
|
-
* Compares two recorded iterations of the active range
|
|
19476
|
-
*
|
|
19477
|
-
*
|
|
19654
|
+
* Compares two recorded iterations of the active range, so only what the branch itself changed
|
|
19655
|
+
* in between shows. The interdiff keeps its own comments and the range's PR identity; its refs
|
|
19656
|
+
* keep being watched.
|
|
19478
19657
|
*/
|
|
19479
19658
|
async interdiff(from, to) {
|
|
19480
19659
|
const a = this.require();
|
|
@@ -19484,58 +19663,19 @@ var Session = class {
|
|
|
19484
19663
|
const store = new IterationStore(this.repo, range.commentKey);
|
|
19485
19664
|
const [older, newer] = await Promise.all([store.get(from), store.get(to)]);
|
|
19486
19665
|
if (!older || !newer) throw new RevspecError(`no iteration #${older ? to : from} of ${comparisonLabel(range)}`);
|
|
19487
|
-
const
|
|
19488
|
-
|
|
19489
|
-
|
|
19490
|
-
|
|
19666
|
+
const side = (it) => ({
|
|
19667
|
+
old: it.oldSha,
|
|
19668
|
+
new: it.newSha,
|
|
19669
|
+
oldSha: it.oldSha,
|
|
19670
|
+
newSha: it.newSha,
|
|
19671
|
+
iteration: it.n
|
|
19672
|
+
});
|
|
19491
19673
|
return {
|
|
19492
19674
|
prUrl: a.prUrl,
|
|
19493
|
-
mode:
|
|
19494
|
-
old: tree,
|
|
19495
|
-
new: newer.newSha,
|
|
19496
|
-
base: "direct",
|
|
19497
|
-
live: range.live === "none" ? "none" : "refs",
|
|
19498
|
-
commentKey: `${range.commentKey}:interdiff:${from}-${to}`,
|
|
19499
|
-
within: range,
|
|
19500
|
-
interdiff: {
|
|
19501
|
-
from: older,
|
|
19502
|
-
to: newer,
|
|
19503
|
-
conflicts,
|
|
19504
|
-
pairs
|
|
19505
|
-
}
|
|
19506
|
-
}
|
|
19675
|
+
mode: await compareRanges(this.repo, range, side(older), side(newer))
|
|
19507
19676
|
};
|
|
19508
19677
|
}
|
|
19509
19678
|
/**
|
|
19510
|
-
* Pairs the two iterations' commits as `git range-diff` does and tells a pair whose patch is
|
|
19511
|
-
* the same (a reworded commit) from an amended one by patch id.
|
|
19512
|
-
*/
|
|
19513
|
-
async pairs(older, newer) {
|
|
19514
|
-
const oldRange = `${older.oldSha}..${older.newSha}`;
|
|
19515
|
-
const newRange = `${newer.oldSha}..${newer.newSha}`;
|
|
19516
|
-
const [rows, oldCommits, newCommits] = await Promise.all([
|
|
19517
|
-
this.repo.rangeDiff(oldRange, newRange),
|
|
19518
|
-
this.repo.rangeCommits(oldRange, 250),
|
|
19519
|
-
this.repo.rangeCommits(newRange, 250)
|
|
19520
|
-
]);
|
|
19521
|
-
const find = async (list, abbrev) => {
|
|
19522
|
-
if (abbrev === null) return null;
|
|
19523
|
-
return list.find((c) => c.sha.startsWith(abbrev)) ?? (await this.repo.rangeCommits(`${abbrev}^!`, 1)).list[0] ?? null;
|
|
19524
|
-
};
|
|
19525
|
-
const paired = await Promise.all(rows.map(async (row) => ({
|
|
19526
|
-
old: await find(oldCommits.list, row.old),
|
|
19527
|
-
new: await find(newCommits.list, row.new),
|
|
19528
|
-
marker: row.marker
|
|
19529
|
-
})));
|
|
19530
|
-
const changed = paired.filter((p) => p.marker === "!" && p.old && p.new);
|
|
19531
|
-
const ids = await this.repo.patchIds(changed.flatMap((p) => [p.old.sha, p.new.sha]));
|
|
19532
|
-
return paired.map(({ old, new: next, marker }) => ({
|
|
19533
|
-
old,
|
|
19534
|
-
new: next,
|
|
19535
|
-
status: marker === "=" ? "identical" : marker === "<" ? "dropped" : marker === ">" ? "added" : old && next && ids.get(old.sha) !== void 0 && ids.get(old.sha) === ids.get(next.sha) ? "message" : "changed"
|
|
19536
|
-
}));
|
|
19537
|
-
}
|
|
19538
|
-
/**
|
|
19539
19679
|
* Shows one pair of the active interdiff by its new-side commit: an added commit against its
|
|
19540
19680
|
* parent, an amended or reworded one against its old self replayed onto its parent. With null,
|
|
19541
19681
|
* the whole interdiff again. Identical pairs have nothing to show; dropped ones have no new side.
|
|
@@ -19544,10 +19684,13 @@ var Session = class {
|
|
|
19544
19684
|
const a = this.require();
|
|
19545
19685
|
const { interdiff, within: range } = a.mode;
|
|
19546
19686
|
if (!interdiff || !range) throw new RevspecError("no interdiff to pick a pair from");
|
|
19547
|
-
if (commit === null) return
|
|
19687
|
+
if (commit === null) return {
|
|
19688
|
+
prUrl: a.prUrl,
|
|
19689
|
+
mode: await compareRanges(this.repo, range, interdiff.from, interdiff.to)
|
|
19690
|
+
};
|
|
19548
19691
|
const found = interdiff.pairs.find((p) => p.new && (p.new.sha === commit || p.new.short === commit));
|
|
19549
19692
|
if (!found?.new) throw new RevspecError(`not a commit of ${comparisonLabel(a.mode)}: ${commit}`);
|
|
19550
|
-
if (found.status === "identical") throw new RevspecError(`${found.new.short} is identical in both
|
|
19693
|
+
if (found.status === "identical") throw new RevspecError(`${found.new.short} is identical in both ranges`);
|
|
19551
19694
|
const base = {
|
|
19552
19695
|
live: range.live === "none" ? "none" : "refs",
|
|
19553
19696
|
within: range,
|
|
@@ -19652,8 +19795,8 @@ var Session = class {
|
|
|
19652
19795
|
reload() {
|
|
19653
19796
|
return this.run(async () => {
|
|
19654
19797
|
const a = this.require();
|
|
19655
|
-
if (
|
|
19656
|
-
return this.
|
|
19798
|
+
if (a.mode.within && shownIterations(a.mode)) return this.leaveInterdiff(a);
|
|
19799
|
+
return this.recompute();
|
|
19657
19800
|
});
|
|
19658
19801
|
}
|
|
19659
19802
|
/** Forgets the range's recorded iterations and unpins their commits; its current state is recorded anew as #1. */
|
|
@@ -19662,7 +19805,7 @@ var Session = class {
|
|
|
19662
19805
|
const a = this.require();
|
|
19663
19806
|
const range = a.mode.within ?? a.mode;
|
|
19664
19807
|
await new IterationStore(this.repo, range.commentKey).clear();
|
|
19665
|
-
return a.mode
|
|
19808
|
+
return shownIterations(a.mode) ? this.leaveInterdiff(a) : this.recompute();
|
|
19666
19809
|
});
|
|
19667
19810
|
}
|
|
19668
19811
|
/**
|
|
@@ -19678,23 +19821,33 @@ var Session = class {
|
|
|
19678
19821
|
if (!list.some((it) => it.n === n)) throw new RevspecError(`no iteration #${n}`);
|
|
19679
19822
|
if (list.at(-1).n === n) throw new RevspecError(`#${n} is the latest iteration, the range's current state`);
|
|
19680
19823
|
await store.remove(n);
|
|
19681
|
-
const
|
|
19682
|
-
return
|
|
19824
|
+
const shown = shownIterations(a.mode);
|
|
19825
|
+
return shown && (shown.from === n || shown.to === n) ? this.leaveInterdiff(a) : this.recompute();
|
|
19683
19826
|
});
|
|
19684
19827
|
}
|
|
19685
|
-
|
|
19686
|
-
|
|
19828
|
+
leaveInterdiff(a) {
|
|
19829
|
+
return this.enter({
|
|
19687
19830
|
mode: a.mode.within,
|
|
19688
19831
|
prUrl: a.prUrl
|
|
19689
19832
|
});
|
|
19833
|
+
}
|
|
19834
|
+
/** Activates a review in place of the current one, as a switch does, and tells clients. */
|
|
19835
|
+
async enter(review) {
|
|
19836
|
+
const snap = await this.activate(review);
|
|
19690
19837
|
this.hub.broadcast({
|
|
19691
19838
|
type: "snapshot",
|
|
19692
19839
|
version: snap.version
|
|
19693
19840
|
});
|
|
19694
19841
|
return snap;
|
|
19695
19842
|
}
|
|
19843
|
+
/**
|
|
19844
|
+
* Recomputes the active snapshot. A range-diff of two named ranges resolves them again
|
|
19845
|
+
* instead, since its sides are pinned trees: that is how it follows the refs it was named by.
|
|
19846
|
+
*/
|
|
19696
19847
|
recompute() {
|
|
19697
19848
|
const a = this.require();
|
|
19849
|
+
const inter = a.mode.interdiff;
|
|
19850
|
+
if (inter && !shownIterations(a.mode) && !a.mode.pair) return rangeDiffReview(this.repo, [inter.from, inter.to], a.prUrl).then((review) => this.enter(review));
|
|
19698
19851
|
a.snapshotter.invalidate(++this.version);
|
|
19699
19852
|
return this.publish(a);
|
|
19700
19853
|
}
|
|
@@ -19802,7 +19955,7 @@ var Session = class {
|
|
|
19802
19955
|
* review. Goes through `readSide`, so the allowlist applies.
|
|
19803
19956
|
*/
|
|
19804
19957
|
anchorSource() {
|
|
19805
|
-
if (this.mode.interdiff) throw new RevspecError("comments are off while comparing iterations");
|
|
19958
|
+
if (this.mode.interdiff) throw new RevspecError(shownIterations(this.mode) ? "comments are off while comparing iterations" : "comments are off in a range-diff");
|
|
19806
19959
|
return {
|
|
19807
19960
|
quote: async (path, side, startLine, endLine) => {
|
|
19808
19961
|
const snap = await this.snapshotter.current();
|
|
@@ -23796,13 +23949,19 @@ const c = {
|
|
|
23796
23949
|
};
|
|
23797
23950
|
const program = new Command().exitOverride().name("diffle").description("Review a git diff in the browser and export line comments as an agent prompt.").version(version$1, "-v, --version", "print the version and exit").addOption(completionHint(new Option("-C <path>", "run as if started in <path> (any directory inside a git worktree)"), { kind: "directory" })).option("-p, --port <port>", `port to listen on (default: ${DEFAULT_PORT}, or the next free one; 0 = random)`, parsePort).option("-H, --host <host>", "address to bind; use 0.0.0.0 to expose on the network", "127.0.0.1").option("--allowed-origin <origin>", "trusted public HTTP(S) origin behind a reverse proxy (without a path)", parseAllowedOrigin).option("--no-open", "do not open a browser").option("--keep-alive", "keep the server running after all browser tabs close").option("--no-watch", "do not watch for changes").addOption(new Option("--auto-viewed <glob>", "mark matching files viewed for this session (repeatable)").argParser(collect).default([], "none")).option("-U, --context <n>", "context lines around changes for this session (default: config, 5)", parseContext).addOption(new Option("--lsp <language=command>", "language server command for one language, started for this run (repeatable); by default the diff's languages are served by whatever is on PATH").argParser(collectLspOverride).default(true, "the diff's languages, resolved on PATH")).option("--no-lsp", "do not start any language server").option("--timing", "print startup phase timings to stderr").option("--dev", "serve the client through Vite (development)", process.env.DIFFLE_DEV === "1" ? true : void 0).addArgument(completionHint(new Argument("[revs...]", "git-diff style revisions: <rev> | <a>..<b> | <a>...<b> | <a> <b>"), {
|
|
23798
23951
|
kind: "choices",
|
|
23799
|
-
values: [
|
|
23952
|
+
values: [
|
|
23953
|
+
"working",
|
|
23954
|
+
"pr",
|
|
23955
|
+
"range-diff"
|
|
23956
|
+
]
|
|
23800
23957
|
})).addHelpText("after", `
|
|
23801
23958
|
Shorthands (in place of <revs>):
|
|
23802
23959
|
working same as HEAD..worktree: uncommitted changes, staged and untracked included
|
|
23803
23960
|
pr [number|url] a GitHub pull request: its base...head, fetched if needed
|
|
23804
23961
|
(without an argument: the pull request for this branch)
|
|
23805
23962
|
show [rev] same as <rev>^!: one commit against its first parent, pinned (default: HEAD)
|
|
23963
|
+
range-diff <ranges...> how one series of commits became another, like git range-diff:
|
|
23964
|
+
<a>..<b> <c>..<d> | <base> <b> <d> | <b>...<d>
|
|
23806
23965
|
|
|
23807
23966
|
Revisions follow git diff, except that a lone one compares from the merge base:
|
|
23808
23967
|
diffle main same as main...HEAD: what this branch added since it left main
|
|
@@ -23831,6 +23990,10 @@ program.command("pr", { hidden: true }).argument("[pr]", "pull request number or
|
|
|
23831
23990
|
kind: "pr",
|
|
23832
23991
|
pr
|
|
23833
23992
|
}, cmd.optsWithGlobals()));
|
|
23993
|
+
program.command("range-diff", { hidden: true }).argument("<ranges...>", "two ranges: <a>..<b> <c>..<d>, <base> <b> <d>, or <b>...<d>").summary("two series of commits").description("How one series of commits became another, as git range-diff shows it: the older range replayed onto the newer one’s base against the newer range, with the commits paired.").action(async (ranges, _o, cmd) => run({
|
|
23994
|
+
kind: "range-diff",
|
|
23995
|
+
args: ranges
|
|
23996
|
+
}, cmd.optsWithGlobals()));
|
|
23834
23997
|
const config = program.command("config").description("show or edit the user config (same settings as the UI dialog)");
|
|
23835
23998
|
config.command("show", { isDefault: true }).description("print the config file path and contents").action(async () => {
|
|
23836
23999
|
const store = await UserConfigStore.open();
|